iOS-为什么会出现错误?

iOS-为什么会出现错误?,ios,xcode,Ios,Xcode,这是我的密码: -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"startGame"]) { UIViewController *controller = (UIViewController *)segue.destinationViewController; controller.gr

这是我的密码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"startGame"]) {
        UIViewController *controller = (UIViewController *)segue.destinationViewController;
        controller.grade = self.currentGrade;
    }
}
错误:

(!)Semantic Issue:
    Property "grade" not found on object of type 'UIViewController *'

为什么会出现这个错误?我将其定义为视图控制器的属性,并将其连接到情节提要中。

可能的情况:检查您的
UIViewController
自定义类。作为
segue.destinationViewController
将返回与根视图绑定的
ViewController
对象

与你的情况一样:

UIViewController *controller = (UIViewController *)segue.destinationViewController;
        controller.grade = self.currentGrade;
您可以访问
UIViewController
grade
属性,但未找到该属性,因此可能是导致此崩溃的原因之一


在viewController中键入强制转换

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        if ([segue.identifier isEqualToString:@"startGame"]) {
            YourViewController *controller = (YourViewController *)segue.destinationViewController;
            controller.grade = self.currentGrade;
        }
    }

等级是您的自定义属性。
您可以自定义viewcontroller,它定义一个属性:grade。

可能是segue.destinationViewController;是否返回null或返回objetive-c的任何内容?您必须在下一个视图控制器cast中将grade变量声明为UIViewController的特定名称,而不是直接将其强制转换为UIViewController。因为
UIViewController
没有
grade
等属性。如果答案与u相关,请做记号