CBPeripheralManager应该在单独的线程上发送数据吗?

时间:2013-03-27 19:03:41

标签: ios concurrency core-bluetooth

我正在设计一个iOS应用程序,用户可以通过蓝牙发送数据。这是我第一次在应用程序中使用蓝牙,我想知道它的最佳实践,特别是数据传输是否应该在一个单独的线程中处理。

CBPeripheralManager连接到订阅CBCentralManager后,发送数据的循环将归结为:

while (didSend) {
    NSData *blob = /* some data */
    didSend = [self.manager updateValue:blob
                      forCharacteristic:self.characteristic
                   onSubscribedCentrals:nil]
}

如果这在主线程上执行,这是否意味着用户失去对应用程序的控制权?例如,如果用户想要通过关闭应用程序或其他东西取消交易,我是否可以告诉CBPeripheralManager以某种方式中止,还是我必须等到循环结束?如果后者是真的,解决这个问题的最佳方法是什么?

0 个答案:

没有答案