CBPeripheral(CoreBluetooth)のCBServicesを検出するブロックがあります。しかし、しばらくしてこのブロックをキャンセルするにはどうすればよいですか?遅延後に完了ブロックをキャンセルする
たとえば、10秒後にCBServicesを検出しなかった場合、ブロックはキャンセルする必要があります。
CBPeripheral(CoreBluetooth)のCBServicesを検出するブロックがあります。しかし、しばらくしてこのブロックをキャンセルするにはどうすればよいですか?遅延後に完了ブロックをキャンセルする
たとえば、10秒後にCBServicesを検出しなかった場合、ブロックはキャンセルする必要があります。
は、あなただけのCBCentralManagerのstopScan関数を呼び出す
[self performSelector:@selector(cancelAction:) withObject:self afterDelay:10];
-(void)cancelAction:(id)sender {
//What ever you want try here
}
遅延アクションのperformSelectorを使用することができます。
[self performSelector:@selector(stopScan:) withObject:self afterDelay:10];
- (void)stopScan:(id)sender {
[self.centralManager stopScan];
}
はい、それです!ありがとうございました –
私の答えがうまくいけばそれを承認することができます。 – abdullahselek
それは働いていましたが、私の場合stopScanメソッドで:完了ハンドラをnilに設定する必要があります。 –
ありがとうございます! –
@Tonyあなたの歓迎 –