2011-04-01 40 views
0

我有一个NSMutableArray内有一堆点(它是我定义的类)。我想序列化这个NSMutableArray保存到我的磁盘。如果我在我的类实现点NSCoding协议是否可以直接在我的NSMutableArray中使用NSKeyedArchiver?用对象内部的对象序列化一个NSMutableArray

就像这个例子:

NSMutableData *data = [NSMutableData new]; 
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 
[archiver encodeObject:myArray forKey:@"array"]; 
[data writeToFile:filename attomically:YES]; 
[archiver release]; 
[data release]; 
+1

应该罚款,只要你正确地实现NSCoding,NSCopying的点。 – 2011-04-01 15:41:17

回答

2

是的,它是可能的,引用Apple documentation

NSArray类采用NSCopying,NSMutableCopying和NSCoding协议;

需要注意的是,如果你与工作,也许你应该使用苹果CGPoint结构,它附带了许多好用的工具:CGPointFromStringNSStringFromCGPointsee Apple documentation for more information

以及这些人的人你可能感兴趣的CGPointEqualToPointCGRectContainsPointCGRectIntersectsRectCGRectContainsRect ... see Apple documentation for more information

+0

问题是我存储更多的信息,而不仅仅是位置:(但thanx无论如何答案 – Adelino 2011-04-01 16:45:50

+0

然后你可以让你的Point类具有CGPoint类型的坐标属性,而且你的类甚至可以暴露内部结构的x/y。这样你就可以同时得到两个方面,或者为什么不在编码/解码时只使用CGPoint作为临时变量... – 2011-04-01 18:53:08