使用NSData发送链接列表

时间:2012-05-02 01:54:50

标签: iphone objective-c linked-list nsdata

我目前正在实施多人游戏的网络端。到目前为止,我通过将对象序列化为NSData来发送类。麻烦在于我的类中有链接列表引用相同类型的其他对象。如果我使用initWithCoder传输所有对象并在接收端解码:(NSCoder *)解码器,类中的对象是否仍然保持正确的引用?如果没有,任何人都可以推荐一个干净的解决方案吗?

1 个答案:

答案 0 :(得分:2)

NSCoder应该可以正常工作。编码时,编码列表的头部并使用列表结构本身来指导其余部分。假设列表中包含数据字符串和简单的前向链接。只需对头部进行编码......

// in ListNode.m

- (void)encodeWithCoder:(NSCoder*)encoder {

    [encoder encodeObject:self.theString forKey:@"thisIsMyListsData"];
    if (self.nextNode) {
        [encoder encodeObject:self.nextNode forKey:@"nextNode"];
    }
}