我需要序列化树节点,截至目前我没有找到任何方法使用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数据并创建树。
我只是想知道有没有更好的方法解决这个问题...我很感激你的想法。
答案 0 :(得分:0)
为什么要先构建该数组?每个节点都应该知道编码本身,包括子节点(但不是父节点,因为你会有一个循环)。您只需通过存储根节点对树进行编码即可。那编码整棵树。
解码时,您可以设置父参考。