2011-04-01 64 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