2011-06-03 115 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

相关问题