こんにちは、Photosynth エンジニア@taku33です。 主にスマホ開発をやっております。 今回は、CoreBlueTooth API での、各処理で実装する際の注意点やアイデアを書きます。 ネットから見つけにくいけれど実際の実装では有益な情報を書きます。 タイムアウト ViewControllerなどから各BLE処理を呼ぶ際は、NSTimerで事前にアプリ側上でのタイムアウト時間を設定しておきます。 これは、何らかの理由(途中で接続が切れた、有効距離外など)でBLE応答が来なかった場合、永遠に応答を待ち続けるのを防止するためです。 CoreBlueToothペリフェラルAPIの場合、タイムアウト時はアドバタイズを止めてwriteリクエストなどが来ないようにしておくといいと思います。 実際のタイムアウト時間ですが、セントラル機器側にもタイムアウト時間が定義されている場合は、それより