2015-12-17 3 views
0

У меня есть BLE фонд для записи данных на Peripheral службы:CBPeripheral setNotifyValue WithResponse не называют didWriteValueForCharacteristic

func writeData(data: [Int8]) { 
    let character = CBMutableCharacteristic(type: cuivienenCharacterUUID, properties: [.Write, .Read, .Notify], value: nil, permissions: [.Readable, .Writeable]) 
    test_peripheral.writeValue(NSData(bytes: data, length: data.count), forCharacteristic: character, type: .WithResponse) 
    test_peripheral.setNotifyValue(true, forCharacteristic: character) 
} 

Я уже инициализации test_peripheral и установить его делегатом на себя. Но test_peripheral.writeValue никогда не назывался func peripheral(peripheral: CBPeripheral, didWriteValueForCharacteristic characteristic: CBCharacteristic, error: NSError?). Я не могу получить сообщение об ошибке!

Так же test_peripheral.setNotifyValue. Он никогда не вызывает func peripheral(peripheral: CBPeripheral, didUpdateNotificationStateForCharacteristic characteristic: CBCharacteristic, error: NSError?)

Что не так с моим кодом?

ответ

0

CBCharacteristic в

test_peripheral.writeValue(NSData(bytes: data, length: data.count), forCharacteristic: character, type: .WithResponse) 

не должны инициализировать ваш собственный код. Вы должны найти свою CBC-характеристику в

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

а затем использовать ее.

Смежные вопросы