Преобразование 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")
}
Спасибо большое.