2017-03-14 5 views
0

CBPeripheral(CoreBluetooth)のCBServicesを検出するブロックがあります。しかし、しばらくしてこのブロックをキャンセルするにはどうすればよいですか?遅延後に完了ブロックをキャンセルする

たとえば、10秒後にCBServicesを検出しなかった場合、ブロックはキャンセルする必要があります。

答えて

0

は、あなただけのCBCentralManagerのstopScan関数を呼び出す

[self performSelector:@selector(cancelAction:) withObject:self afterDelay:10]; 

-(void)cancelAction:(id)sender { 

    //What ever you want try here 

} 
+0

ありがとうございます! –

+0

@Tonyあなたの歓迎 –

0

遅延アクションのperformSelectorを使用することができます。

[self performSelector:@selector(stopScan:) withObject:self afterDelay:10]; 

- (void)stopScan:(id)sender { 
    [self.centralManager stopScan]; 
} 
+0

はい、それです!ありがとうございました –

+0

私の答えがうまくいけばそれを承認することができます。 – abdullahselek

+0

それは働いていましたが、私の場合stopScanメソッドで:完了ハンドラをnilに設定する必要があります。 –

関連する問題