私はいくつかの NSString であり、それらに参加して単一の NSString を作成し、その単一の NSString を NSData に変換し、Bluetooth 経由で他の iPhone に送信しています。
しかし、今は上記のデータで画像を送信する必要があります。
どうすればそのようなコンセプトを達成できますか?
しかし、単一の NSData (UIImage+NSString) を送信したいのですが、どうすればよいでしょうか????
私はいくつかの NSString であり、それらに参加して単一の NSString を作成し、その単一の NSString を NSData に変換し、Bluetooth 経由で他の iPhone に送信しています。
しかし、今は上記のデータで画像を送信する必要があります。
どうすればそのようなコンセプトを達成できますか?
しかし、単一の NSData (UIImage+NSString) を送信したいのですが、どうすればよいでしょうか????
iPhone で Bluetooth データ転送をプログラムする方法に関するチュートリアルはこちら: http://www.devx.com/wireless/Article/43502/1954
あなたが探している重要な部分はここにあります:
-(IBAction) btnSend:(id) sender
{
//---convert an NSString object to NSData---
NSData* data;
NSString *str = [NSString stringWithString:txtMessage.text];
data = [str dataUsingEncoding: NSASCIIStringEncoding];
[self mySendDataToPeers:data];
}
- (void) mySendDataToPeers:(NSData *) data
{
if (currentSession)
[self.currentSession sendDataToAllPeers:data
withDataMode:GKSendDataReliable
error:nil];
}
頑張ってください!
画像は非常に大きくなる可能性があるため、個別のパケットで送信することをお勧めします (画像自体を複数のパケットで送信します)。しかし、一度にすべてを実行したい場合は、それらを NSDictionary にラップしてみてください。辞書を NSData にエンコードし、送信します。次のようなものが機能します。
NSDictionary *myDict = //whatever your dict should hold here...
NSMutableData *packet = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:packet];
[archiver encodeObject:myDict forKey:@"SomeKey"];
[archiver finishEncoding];