ios - 如何制作一个异步方法来处理来自委托(delegate)的数据?

标签 ios objective-c asynchronous delegates

我使用 btstack 在我的 iPhone 和外部设备之间进行通信。我想发送一条特殊命令来检索设备的特殊数据。但我只能从 btstack 的 handlePacket: 方法中获取数据。我只能使用委托(delegate)来处理数据。 但是我想做一个这样的方法:

- (void)readDataAsyncWithCompletionHandler:(Handler)handler

处理程序 block 应该获取数据。 我不知道该怎么做。 我制作了一个 Command 类来执行命令构造和发送。

我知道我们可以在 C# 中使用 await!那么在ios中如何处理呢?

最佳答案

你应该这样写。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    //do you time consuming task


   dispatch_sync(dispatch_get_main_queue(), ^{
       //if you are doing any interaction with UI, do it here

   });

});

关于ios - 如何制作一个异步方法来处理来自委托(delegate)的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093242/

相关文章:

iphone - 如何创建流畅的图像动画

javascript - 在 node.js 中以固定延迟轮询

python - Django异步请求远程api

ios - Swift/如何避免 UITableView rowHeight 发生不必要的变化

ios - 在 xcode 的 Tabbar 中创建显示案例 View

ios - Objective C 将 NSString 放在 NSLog 中

azure - WP8 IMobileServiceTable - 检测异步调用结束

ios - 尝试在 XCode 中提交对应用程序的更新,但我不断收到错误消息……

ios - 边界半径和溢出 :hidden (ionic app)

ios - didSelectRowAt indexPath 播放音频