1

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

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

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

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

4

0 回答 0