私はSwift 3/X-Codeを使用してiOSアプリケーションを開発しています。このアプリは、ブルートゥースの通信が必要ですし、私はいくつかのチュートリアルとそれを動作させるためのものを読んだことがあります。これまでのところ(UI的に)すべてが機能しています。Swift 3、アンラッピング周辺機器名(Bluetooth BLE)
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
//What to do when it discovers a peripheral, add it to the array list
//print("Adding peripherals found to array: " + peripheral.name!)
//peripheralsFound.append(peripheral.name!)
print("Peripheral found!")
}
上記のコードは数行をコメントアウトしている:私が読んだのチュートリアルのほとんどはスウィフト3に更新されていないので、しかし、私はそれがここで問題になる可能性がありますと信じて、以下の問題を抱えていますperipheral.nameで任意の行をコメント解除すると、見つかった周辺機器が配列に追加されます。その上にアプリケーションがクラッシュし、「オプションの値をアンラッピングしている間に予期せず見つからない」
私はそれがperipheral.nameと関係があると信じています!これはXコード自体で修正されました(それは!を追加したか、それ以外の場合はコンパイルされません) peripheral.nameをオプションにすることはできません。そうしないと、アプリケーションはコンパイルされず、見つけた周辺機器の名前を取得する方法は、私はどんな指導をいただければ幸いです。 ありがとうございました!
ありがとうございました!フォローアップの質問は、私の携帯電話が3つの "名前のない"デバイスを見つけているようですが、代わりにperipheral.name以外のものが良いでしょう(これらを識別するため) –
デバイスの名前を認識するための主な方法が必要です。それ以外に、広告データを使用することもできますが、この関数が提供する周辺機能に関連する他のプロパティは使用できません。 –