任何人都可以为我提供一个通过wifi网络发送NSArray对象的好方法。 我有一个代码通过wifi网络发送短信(字符串)。 我的代码是
发送
- (void) sendText:(NSString *)string {
const uint8_t *message = (const uint8_t *)[string UTF8String];
if (_outStream && [_outStream hasSpaceAvailable])
if([_outStream write:message maxLength:strlen((char *)message)] == -1)
NSLog(@"Failed sending data to peer");
}
接收方
- (void) stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode
{
switch(eventCode) {
case NSStreamEventHasBytesAvailable:
{
if (stream == _inStream) {
// read it in
unsigned int len = 0;
len = [_inStream read:buf maxLength:buffSize];
buf[len] = '\0';
if(!len) {
if ([stream streamStatus] != NSStreamStatusAtEnd)
NSLog(@"Failed reading data from peer");
} else {
NSString *message = [NSString stringWithUTF8String:(char *)buf]; }}
现在消息包含我收到的消息... 但是我需要通过wifi.can发送一个NSArray对象,任何人都可以帮我做..
答案 0 :(得分:4)
您可以使用NSKeyedArchiver
从NSData
中获取NSArray
对象,NSData
对象只是二进制数据的包装,因此您可以将其发送出去你的插座。收到数据后,首先将其转换回NSData
对象,然后使用NSKeyedUnarchiver
类将数据恢复。
答案 1 :(得分:1)
您需要机制(协议),它将从发送方端发送数组元素,并且与接收端接收的方式相同