为什么以下命令会导致代码崩溃?
NSTimeInterval timeLeft = [NSDate timeIntervalSinceDate: [[NSUserDefaults standardUserDefaults] objectForKey:@ “lastDate”] [[[timer userInfo] objectForKey:@“theLabel”] text:[NSString stringWithFormat:@“剩余时间:%d”,waitTime]]; //设置标签文本
我可以肯定变量没有问题。 userInfo是通过NSTimer传入的字典。
谢谢!
答案 0 :(得分:2)
假设您准确地粘贴了代码,这行代码肯定会引发异常:
[[[timer userInfo] objectForKey:@"theLabel"] text:[NSString stringWithFormat:@"Time Remaining: %d", waitTime]];
你试图在某个对象上调用方法-text:
,这可能是UILabel。但是没有这样的方法。编译器应警告您它不知道任何名为-text:
的选择器。相反,你几乎肯定想要-setText:
。
您还引用了一个名为waitTime
的变量,但前一行创建了一个名为timeLeft
的变量。假设您真的想引用timeLeft
,那么这里有另一个问题,即timeLeft
是一个双精度数,但您将其打印为整数。如果你想要一个整数秒,你应该尝试制作格式标记%.0f
并制作参数roundf(timeLeft)
。