我正在构建一个IoT设备,我的异步读取工作得很好,但我需要执行同步读取。我被告知这在Android上是可行的,因为有一种方法基本上可以读取缓冲区。
我想知道Core-bluetooth是否支持类似的东西,或者是否有人对此有聪明的方法?
答案 0 :(得分:1)
可以通过阻塞使任何异步操作同步,直到操作完成。您可以使用队列或锁来阻止。
NSLock *lock = [[NSLock alloc] init];
[thing doSomethingAsynchronousWithCompletion:^{
[lock unlock];
}];
[lock lock];
不要这样做。永远不会。
你不应该阻止。您的异步代码的完成处理程序应该触发一个导致代码继续的事件。
[thing doSomethingAsynchronousWithCompletion:^(NSData *readData){
[dataProcessor processData:readData];
}];