2011-06-03 81 views
1
- (IBAction) goStrobe:(id) sender { 
    [NSTimer scheduledTimerWithTimeInterval:2.0 
            target:self 
            selector:@selector(runLoop:) 
            userInfo:nil 
            repeats:YES]; 
} 

- (void) runLoop { 
    if (imageTwo.hidden = YES) { 
     imageTwo.hidden = NO; 
    } 

    if (imageTwo.hidden = NO) { 
     imageTwo.hidden = YES; 
    } 
} 

我的代碼在上面。每當我觸發goStrobe時,它崩潰,我不知道爲什麼。任何幫助將不勝感激。謝謝我試圖做一個簡單的循環,它每次運行時崩潰

+3

請注意,您的'if'條件是賦值表達式'='而不是比較'=​​='。你想要後者。 – 2011-06-03 01:33:15

+1

而像這樣:imageTwo.hidden =!imageTwo.hidden將在同一行中完成相同的工作。 – 2011-06-03 01:37:31

+2

相關:你不僅要分配而不是比較,而且結構使得你的if-子句無效。如果滿足第一個條件,則更新該值,然後確保滿足第二個條件。所以你最終會在第一個if子句之前的狀態。 – danyowdee 2011-06-03 06:15:09

回答

3

這是你的runLoop函數簽名在選擇器中是錯誤的,只是在最後刪除「:」。你不需要這個,因爲你的函數不帶任何參數。

+1

+1,但選擇器必須是' - (void)runLoop:(NSTimer *)timer'。 – 2011-06-03 02:09:06

+0

@Deepak不一定:使用不帶參數的選擇器設置'NSTimer'是有效的,儘管我通常不會這樣做。 – danyowdee 2011-06-03 06:26:30

+0

@danyowdee但[[doc]](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSTimer_Class/Reference/NSTimer.html)的準確性甚至連措辭均勻儘管另一個可能工作。 – 2011-06-03 06:29:07

相關問題