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相关,请做记号