BTLE Corebluetooth iOS Передача массива
Я играю с образцом кода Apple BTLE_TRANSFER https://developer.apple.com/library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html В этом примере устройство iOS "A" отправляет на другое устройство iOS "B" некоторые "текст" (NSString), когда B (центральный) подписывается на характеристику "A" (периферийный). (Данные разрезаются на части, а затем отправляются по частям, пока все не будет получено на другой стороне)
Я изменил код для передачи изображения, используя метод UIImageJPEGRepresentation, и он работает нормально (но занимает много времени, когда размер изображения превышает 2 ko)
Теперь я хотел бы попытаться передать массив различных объектов, таких как текст, изображение.
Я попробовал приведенный ниже код в методе didSubscribeToCharacteristic (со стороны Peripheral Manager):
NSArray *MyArray;
MyArray = [[NSArray alloc]initWithObjects:@"Text1", @"Text2", nil];
_dataToSend = [NSKeyedArchiver archivedDataWithRootObject:MyArray];
где _dataToSend - это NSData, который отправляется
И приведенный ниже код в методе didUpdateValueForCharacteristic (центральная сторона - периферийный делегат):
NSArray *My2Array = [NSKeyedUnarchiver unarchiveObjectWithData:_dataReceived];
NSLog(@"%@",[My2Array objectAtIndex:1]);
где _dataReceived - полученная NSData
Каждый фрагмент получен на центральной стороне, но некоторые части имеют нулевое значение, и когда я пытаюсь разархивировать данные в nsarray, он говорит, что данные имеют значение NULL.
Я использую неправильный метод? Есть ли другой способ поместить nsarray в nsdata?
Спасибо за помощь
Джимми
1 ответ
Код на самом деле работает... Я просто перепечатал все с нуля Извините за беспокойство