1

ユーザーが Bluetooth 経由でデータを送信できる iOS アプリを設計しています。アプリで Bluetooth を使用するのはこれが初めてで、ベスト プラクティス、特にデータ転送を別のスレッドで処理する必要があるかどうかについて疑問に思っています。

CBPeripheralManagerがサブスクライブに接続すると、データCBCentralManagerを送信するループは次のようになります。

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

これがメイン スレッドで実行される場合、これはユーザーがアプリの制御を失うことを意味しますか? たとえば、ユーザーがアプリなどを閉じてトランザクションをキャンセルしたい場合、CBPeripheralManager何らかの方法で中止するように伝えることができますか、それともループが終了するまで待たなければなりませんか? 後者の場合、この問題を回避する最善の方法は何ですか?

4

0 に答える 0