Apple のサンプル コード BTLE_TRANSFER で遊んでいます https://developer.apple.com/library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html サンプルでは、iOS デバイス "A" が別の iOS デバイス "B" にいくつかのデータを送信します。 B (中央) が "A" (周辺) の特性をサブスクライブする場合の "text" (NSString)。(データはバラバラに切り分けて送信し、相手側で全て受信するまで)
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 です
各ピースは中央側で受信されますが、一部が「null」であり、データを nsarray に展開しようとすると、データが NULL であると表示されます。
間違った方法を使用していますか? nsarray を nsdata に入れる他の方法はありますか?
ご協力ありがとうございました
ジミー