1

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

4

1 回答 1

2

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

// in ListNode.m

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

    [encoder encodeObject:self.theString forKey:@"thisIsMyListsData"];
    if (self.nextNode) {
        [encoder encodeObject:self.nextNode forKey:@"nextNode"];
    }
}
于 2012-05-02T02:08:01.350 回答