NSOperation等待事件

时间:2015-05-21 11:17:04

标签: objective-c nsoperation

我想创建一个扩展NSOperation的自定义类,以便通过蓝牙与其他设备成功通信。我的问题是如何实现类的主要方法,以便它等待蓝牙触发的事件?

2 个答案:

答案 0 :(得分:1)

绝不使用无限循环。它不节能。正如@lead_the_zeppelin所说,使用信号量/互斥量/等。例如,您可以使用dispatch_group这样的函数:

dispatch_group_t waitGroup = dispatch_group_create();
dispatch_group_enter(waitGroup);
dispatch_async(otherQueue, ^{
    //long-running code
    dispatch_group_leave(waitGroup);
}
dispatch_group_wait(waitGroup, DISPATCH_TIME_FOREVER); 

答案 1 :(得分:-1)

我所做的只是在一段时间内使用连续循环,直到某个事件触发BOOL停止循环。我不知道这是否安全,但它确实有效。

while(!self.didFinish){
    ;
}