Core-bluetooth - 是否可以进行同步读取?

Core-bluetooth - Is it possible to do a synchronous read?

我正在构建一个 IoT 设备,我的异步读取工作得很好,但我需要执行同步读取。有人告诉我这在 Android 上是可能的,因为有一种方法基本上可以在缓冲区进入时读取它。

我想知道 Core-bluetooth 是否支持类似的东西,或者是否有人对此有巧妙的方法?

任何异步操作都可以通过阻塞直到操作完成来同步。可以使用队列或者锁来阻塞。

NSLock *lock = [[NSLock alloc] init];
[thing doSomethingAsynchronousWithCompletion:^{
     [lock unlock];
 }];

 [lock lock];

不要这样做。从来没有。

你不应该阻止。您的异步代码的完成处理程序应触发导致您的代码继续的事件。

[thing doSomethingAsynchronousWithCompletion:^(NSData *readData){
     [dataProcessor processData:readData];
 }];