2011-02-10 171 views
0

为什么下面的代码崩溃?NSTimer崩溃应用程序

NSTimeInterval的timeleft = [的NSDate timeIntervalSinceDate: [[NSUserDefaults的standardUserDefaults] objectForKey:@ “lastDate”]] [[[计时器USERINFO] objectForKey:@ “theLabel”] 文本:[的NSString stringWithFormat:@ “剩余时间:%d”,waitTime]]; //设置标签文字

我可以肯定这个变量没有问题。 userInfo是通过NSTimer传入的字典。

谢谢!

+2

请格式化您的代码。这几乎是不可读的,而且你缺少分号和括号。 – 2011-02-10 20:08:07

回答

2

假设您已经准确地粘贴你的代码,这行代码肯定会抛出异常:

[[[timer userInfo] objectForKey:@"theLabel"] text:[NSString stringWithFormat:@"Time Remaining: %d", waitTime]]; 

你试图调用一些对象,这大概是一个UILabel的方法-text:。但是没有这样的方法。编译器应该警告您它不知道名为-text:的任何选择器。相反,你几乎肯定想要-setText:

您也正在引用一个名为waitTime的变量,但上一行创建了一个名为timeLeft的行。假设你真的打算引用timeLeft,那么你在这里有另一个问题,那就是timeLeft是一个double,但是你将它打印为一个整数。如果你想要一个整数秒,你应该尝试制作格式标记%.0f并使参数roundf(timeLeft)