iOSアプリ開発を始めたばかりの者です。
色々と至らない点があるかと思いますが、お付き合いいただければと思います。
質問内容は表題の通りです。
インターネットで色々と調べながら、マイコン(Arduino UNO R3)とBluetoothを用いてシリアル通信するアプリを作っています。
こちらのサイト
(https://knkomko.hatenablog.com/entry/2019/07/16/013443)
を参考にしながら進めているのですが、ページ中程の
swift
1func scanStart() { 2 if manager!.isScanning == false { 3 // サービスのUUIDを指定しない 4 centralManager!.scanForPeripherals(withServices: nil, options: nil) 5 6 // サービスのUUIDを指定する 7 // let service: CBUUID = CBUUID(string: "サービスのUUID") 8 // centralManager!.scanForPeripherals(withServices: service, options: nil) 9 } 10 }
の2行目に出てくる
swift
1if manager!.isScanning == false {
で次のエラーが出てしまいます。
Cannot find 'manager' in scope.
たしかに、その行より前に「manager」という変数は宣言していないですが...。
このエクスクラメーションマークが実は何かの省略であって、それをXcode側がうまく認識しなかったということでしょうか。
その他に、末尾に?が付くタイプもありました。
具体的には以下のコード7行目です。
swift
1var cbPeripheral: CBPeripheral? = nil 2 3 func connect() { 4 for peripheral in peripherals { 5 if peripheral.name != nil && peripheral.name == "デバイス名" { 6 cbPeripheral = peripheral 7 manager?.stopScan() 8 break; 9 } 10 } 11 12 if cbPeripheral != nil { 13 manager!.connect(cbPeripheral!, options: nil) 14 } 15 }
こちらも同様にエラーとなってしまいます。
どなたかお分かりになる方、ご教示ください。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
MacOS BigSur 11.2.3
Xcode Version 12.4 (12D4e)
あなたの回答
tips
プレビュー