1

Я работаю над приложением, где мне нужно иметь соединение Bluetooth с внешним устройством, и я успешно сделал соединение с внешним устройством.CoreBluetooth: CBPeripheral не имеет значения setnotifyValue iOS 10.0

Теперь, ниже CBPeripheralManager делегата генерировать ошибку в прошивке 10 и отлично работает в прошивкой 9,0

func peripheral(peripheral: CBPeripheral, didDiscoverCharacteristicsForService service: CBService, error: NSError?) { 

    if serviceCharacteristics.keys.contains(service.UUID) { 
     guard let characteristics = service.characteristics else { return } 

     peripheral.setNotifyValue(true, forCharacteristic: characteristics[0]) 

} 

Я получаю ошибку в строке ниже

peripheral.setNotifyValue(true, forCharacteristic: characteristics[0]) 

Он говорит, что CBPeripheral не имеет член setNotifyValue. Я не понимаю. Я сделал некоторое обходное решение, но не получил никакой помощи.

ответ

2

Вы используете Swift 3? The method signature has changed к setNotifyValue(_:for:), т.е .:

peripheral.setNotifyValue(true, for: characteristics[0]) 
+0

Nice. Быстрее на ничью. ;) – davidethell

+1

Вы видите, насколько похожи наши ответы? Мы должны иметь аналогичные проводные мозги. –

+0

Раньше я делал код в swift 2.3 сейчас, когда я изменяю цель развертывания и пытаюсь запустить мое приложение, я получаю выше ошибки. Я сделал ниже код в методе делегата, если #available (iOS 10.0, *) { peripheral.setNotifyValue (true, для: характеристики [0]) } else { peripheral.setNotifyValue (включено: true, характеристика: характеристики [0 ]) } –

0

ли вы перейти на стремительной 3? Новый синтаксис использует «для» вместо «forCharacteristic»:

peripheral.setNotifyValue(true, for: characteristics[0])