Home Articles

BTLE Corebluetooth iOS传输阵列

Asked
Viewed 1346 times
1

我正在玩Apple示例代码BTLE_TRANSFER https://developer.apple.com/library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html在示例中,当B(中央)订阅"A"(外围设备)的特征时,iOS设备"A"发送到另一个iOS设备"B"某些"text"(NSString) . (数据被切成碎片然后逐件发送,直到另一方收到所有内容)

我修改了代码以使用UIImageJPEGRepresentation方法传输图像,它工作正常(但是当图像大小超过2 ko时需要很长时间)

现在我想尝试传输一组不同的对象,如文本,图像 .

我在didSubscribeToCharacteristic方法(外围设备管理器端)中尝试了下面的代码:

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 Answer

  • 0

    代码实际上正在工作...我只是从地面重新输入一切抱歉打扰

Related