iOS - 为什么会出错?

时间:2014-07-03 06:55:19

标签: ios xcode

这是我的代码:

-(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 *'

为什么会出现此错误?我将它定义为视图控制器的属性,并将其连接到故事板中。

3 个答案:

答案 0 :(得分:1)

Possbile案例:检查您的UIViewController自定义类。因为segue.destinationViewController;将返回ViewController与您的根视图绑定的对象。

在你的情况下:

UIViewController *controller = (UIViewController *)segue.destinationViewController;
        controller.grade = self.currentGrade;

您访问grade的{​​{1}}属性但未查找,这可能是导致此次崩溃的原因之一。

enter image description here

答案 1 :(得分:1)

将cast转换为viewController

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

答案 2 :(得分:0)

等级是您的定制属性。 您可以自定义viewcontroller,并定义属性:grade。