所以我在viewController的viewDidLoad方法中放了一个while循环,但是当我加载视图控制器时它不起作用并给我一个SIGTERM。这是while循环的代码。
- (void)viewDidLoad
{
while (appDelegate.gobletCheckInt == 0 || appDelegate.gobletCheckInt == 1) {
if (CGRectIntersectsRect(mainSprite.frame, getGobletImg.frame)) {
haveGobletImg.image = [UIImage imageNamed:@"Gold Goblet.png"];
}
}
appDelegate = [[UIApplication sharedApplication]delegate];
getGobletImg.image = [UIImage imageNamed:@"Gold Goblet.png"];
}
最后两行并不重要。那么我不应该把它放在viewDidLoad中吗?
答案 0 :(得分:1)
尝试使用appDelegate对象后,将填写该对象。看起来你需要将appDelegate的赋值移到while循环之上。
答案 1 :(得分:0)
可能会被运行时杀死,因为它有无限循环?你在哪里设置gobletCheckInt到0或1以外的东西?也许你应该:
NSLog(@"%d", appDelegate.gobletCheckInt);
在你的while循环中。
现在我必须做必须的tsk-tsk,这是非常糟糕的架构。 :)您不应该从视图控制器检查应用程序委托的属性。应用程序委托严格用于接收来自UIApplication的消息,例如应用程序启动或终止时。它不应该用于保存属性中的状态。