前提・実現したいこと
BLE(今回はポケットWi-Fi)のrssiを取得したいのですが、
実機にビルドすると起動時に以下のようなエラーになります。
ライブラリの問題なのかよくわかりません。
お知恵を貸してください。
参考URLhttp://harumi.sakura.ne.jp/wordpress/2019/09/04/rssi%E3%81%A7%E8%BF%91%E3%81%8F%E3%81%AE%E7%AB%AF%E6%9C%AB%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B/
発生している問題・エラーメッセージ
libsystem_kernel.dylib`__abort_with_payload: 0x1b9585850 <+0>: mov x16, #0x209 0x1b9585854 <+4>: svc #0x80 -> 0x1b9585858 <+8>: b.lo 0x1b9585874 ; <+36> Thread 9: signal SIGABRT 0x1b958585c <+12>: stp x29, x30, [sp, #-0x10]! 0x1b9585860 <+16>: mov x29, sp 0x1b9585864 <+20>: bl 0x1b95650e8 ; cerror_nocancel 0x1b9585868 <+24>: mov sp, x29 0x1b958586c <+28>: ldp x29, x30, [sp], #0x10 0x1b9585870 <+32>: ret 0x1b9585874 <+36>: ret ``` ### 該当のソースコード ```swift5 ```ここに言語を入力 import UIKit import CoreLocation import MapKit import CoreBluetooth class ViewController: UIViewController, UITextFieldDelegate ,UIPickerViewDelegate, UIPickerViewDataSource ,MKMapViewDelegate,CBCentralManagerDelegate{ //RSSI用 var manager : CBCentralManager! //検索位置の中心を決める var center: CLLocationCoordinate2D! //更新回数 var freqtime = 0 //タイマー var timer : Timer? //カウント変数 var count = 0 //更新頻度の数字の配列作成 let settingArray : [Int] = [0,1,2,3,4,5,10,20,30,60] //記憶しておく let settingKey = "timer_value" // 緯度 var latitudeNow: String = "" // 経度 var longitudeNow: String = "" /// ロケーションマネージャ var locationManager: CLLocationManager! override func viewDidLoad() { super.viewDidLoad() //Do any additional setup after loading the view. manager = CBCentralManager(delegate: self, queue: nil) //timerSettingPickerのデリゲートとソースの先を決定 timerSettingPicker.delegate = self timerSettingPicker.dataSource = self //Texデリゲート先決定 inputText.delegate = self //UserDefaultの取得 let settings = UserDefaults.standard settings.register(defaults: [settingKey:1]) let timerValue = settings.integer(forKey: settingKey) //Pickerの設定 for row in 0..<settingArray.count{ if settingArray[row] == timerValue{ timerSettingPicker.selectRow(row, inComponent: 0, animated: true) } } // ロケーションマネージャのセットアップ setupLocationManager() // 地図の初期化 initMap() } func centralManagerDidUpdateState(_ central: CBCentralManager) { if central.state == .poweredOn { central.scanForPeripherals(withServices: nil, options: [CBCentralManagerScanOptionAllowDuplicatesKey : true]) } } func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) { if peripheral.name != "W04_44C3465CD2A9"{ print("RSSIみっけた!") return } print(RSSI) rssi.text = String(Int(truncating: RSSI)) } @IBOutlet weak var Latitude: UILabel! @IBOutlet weak var LatitudeNOW: UILabel! @IBOutlet weak var Longtude: UILabel! @IBOutlet weak var LongtudeNOW: UILabel! @IBOutlet weak var frequencytime: UILabel! @IBOutlet weak var frequencylabel: UILabel! @IBOutlet weak var time: UILabel! @IBOutlet weak var timerSettingPicker: UIPickerView! @IBOutlet weak var Geoarea: UILabel! @IBOutlet weak var Geostatus: UILabel! @IBOutlet weak var circle: UILabel! @IBOutlet weak var inputText: UITextField! @IBOutlet weak var rssilabel: UILabel! @IBOutlet weak var rssi: UILabel! @IBOutlet weak var Map: MKMapView!
### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー