Преобразование Int в NSData

Привет, ребята. Мне нужно записать значение с моего iPhone на периферию BLE.

Сервис и характеристика обнаружены, и связь также там.

ПРОБЛЕМА: мне нужно записать значение 2 в характеристику. Для этого я звоню

peripheral.writeValue(data, forCharacteristic: characteristic, 
type: CBCharacteristicWriteType.WithResponse)

данные должны быть 2, но это должно быть из типа NSData. Мое преобразование из int в NSData имеет результат 02000000, а не 2, характеристика нуждается в 2.

Что не так в этом преобразовании? Как я могу получить NSData со значением 2

    var ring = 2

    //Convert 2 to NSData -> for peripheral.writeValue()
    let data = NSData(bytes: &ring, length: sizeof(NSInteger))

    //---> let data is <02000000> should be <2>
    print(data)

Следующий код является контекстом, где мне нужно значение 2 в NSData

func peripheral(peripheral: CBPeripheral, didUpdateValueForCharacteristic characteristic: CBCharacteristic, error: NSError?) {

    var data1 = characteristic.descriptors

    //print("\(data1.dynamicType)")
    //print(data1)
    var ring = 2

    //Convert 2 to NSData -> for peripheral.writeValue()
    let data = NSData(bytes: &ring, length: sizeof(NSInteger))//sizeof(NSInteger))

    //---> let data is <02000000> should be <2>
    print(data)


    //Write Datat to peripheral ( characteristic )
    peripheral.writeValue(data, forCharacteristic: characteristic, type: CBCharacteristicWriteType.WithResponse)

}

func peripheral(peripheral: CBPeripheral, didWriteValueForCharacteristic characteristic: CBCharacteristic, error: NSError?) {
    print("Value is Written")

}

Спасибо большое.

0 ответов

Другие вопросы по тегам