更好地序列化树节点的方法

时间:2011-08-17 06:36:39

标签: objective-c cocoa macos

我需要序列化树节点,截至目前我没有找到任何方法使用NSCoding协议使用对象序列化来编写对父节点的引用

我的节点类

@interface FNode : NSObject 
{
@private
    NSString* name;
    NSObject* data;

    FNode* parent;
    NSMutableDictionary* childs;
}

@property (retain) NSString* name;
@property (retain) NSObject* data;

@property (assign)FNode* parent;
@property (retain)NSMutableDictionary* childs;

@end

到目前为止,我在编码之前在树中创建所有数据作为NSArray,在解码之前我采用NSArray数据并创建树。

我只是想知道有没有更好的方法解决这个问题...我很感激你的想法。

1 个答案:

答案 0 :(得分:0)

为什么要先构建该数组?每个节点都应该知道编码本身,包括子节点(但不是父节点,因为你会有一个循环)。您只需通过存储根节点对树进行编码即可。那编码整棵树。

解码时,您可以设置父参考。