1

我正在使用 Apple 示例代码 BTLE_TRANSFER https://developer.apple.com/library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html 在示例中,iOS 设备“A”向另一台 iOS 设备“B”发送了一些B(中央)订阅“A”(外围)的特征时的“文本”(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 时,它说数据是空的。

我使用了错误的方法吗?有没有其他方法可以将 nsarray 放入 nsdata 中?

谢谢您的帮助

吉米

4

1 回答 1

0

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

于 2014-11-13T05:05:10.107 回答