我如何通过WiFi网络传递NSArray?

时间:2011-05-23 09:30:07

标签: iphone objective-c xcode networking nsarray

任何人都可以为我提供一个通过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对象,任何人都可以帮我做..

2 个答案:

答案 0 :(得分:4)

您可以使用NSKeyedArchiverNSData中获取NSArray对象,NSData对象只是二进制数据的包装,因此您可以将其发送出去你的插座。收到数据后,首先将其转换回NSData对象,然后使用NSKeyedUnarchiver类将数据恢复。

答案 1 :(得分:1)

您需要机制(协议),它将从发送方端发送数组元素,并且与接收端接收的方式相同