2017-03-08 1 views
0

コールバックを使用してBLEModuleを開発しています。 以下は電源を確認するための簡単なコードです。 ViewDidLoadではうまく機能します。 しかし、なぜコードが@IBActionで応答しないのですか?Swift - クリック後のコールバックコール


class ViewController: UIViewController { 

    var ble = BLEManager.sharedInstance 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     ble.confirmPower { (result) in 
      print(result) //true or false 
     } 
    } 

    @IBAction func checkBtn(_ sender: Any) { 
     print("power") 
     ble.confirmPower { (result) in 
      print(result) //non-response 
     } 
    } 
} 

私はBLEModuleを開発するためのコールバックを使用しています。 以下は電源を確認するための簡単なコードです。 ViewDidLoadではうまく機能します。 しかし、なぜコードが@IBActionで応答しないのですか?

+0

ボタンをクリックしたときに「電源」がコンソールに出力されることを確認しましたか?そうでない場合は、ストーリーボードのボタンを 'ViewController'コードの' checkBtn(_ :) 'メソッドに接続するのを忘れていると思います。 – RobertJoseph

答えて

0

centralManagerDidUpdateStateが解雇されるとコールバックが呼び出されますが、centralManagerDidUpdateStateはアプリの開始時に解雇されるので、viewDidLoadのコールバックが呼び出されます。ただし、ボタンを押すと、centralManagerDidUpdateStateは起動されないので、コールバックは呼び出されません。

+0

申し訳ありませんが、間違いました。私のコードはこのコードのようなものです。 –

+0

の結果はまだ同じでした。 –

+0

@ David.Choiあなたは私の編集を試すことができますか? – chengsam

0

あなたのストーリーボードでscanBtnがtouchUpInsideのような適切なtouchEventにリンクされていることを確認する必要があります。これを行うには、ボタンを右クリックします。あなたの問題を解決するのに役立つもう少し情報をいただければ幸いです。

+0

ご意見ありがとうございます。すでにリンクされています。印刷コード行が実行され、コールバックコード行が実行されません。 –

関連する問題