2011-02-10 92 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)