停止该方法的递归循环

时间:2013-02-16 13:10:32

标签: iphone ios objective-c cocos2d-iphone

是否可以通过选择器停止循环进入方法调用? 我已经创建了一个停止所有运行过程的新方法,但我不知道在audioloop方法中如何停止while循环。

这是我的代码,请参阅:

-(id) init{
    if((self=[super init]) ) { 
       // @property int isLoop;
       self.isLoop = 1;
       audioThread = [NSThread new];
       [audioThread initWithTarget:self selector:@selector(audioLoop) object:nil];
       [audioThread setThreadPriority:1];
       [audioThread start];   
    }
}

// in this method i would stop while loop of audioLoop method
-(void)stopAllRunning{
    self.isLoop = 0;
    [audioThread cancel];
}

 -(void) audioLoop{
    while (isLoop) {
        [_midiClock update];
    }
 }

1 个答案:

答案 0 :(得分:0)

只需添加conditionbreak语句即可:

while (true)
{
     if(yourCondition)
        break;
     else
        [_midiClock update];
}

或简单地说:

while (yourCondition)
{
   [_midiClock update];
}