标题几乎解释了它。我是否需要先对序列化对象,还是可能?
答案 0 :(得分:12)
您必须对对象(在数组中)中的对象进行编码/解码,并将数组存档到NSData。
添加
<NSCoding>
到对象的类(在数组中)并按照编译器的警告:D
然后将您的数组归档为:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:yourArray];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:data forKey:@"yourKey"];
NSArray *array= [NSKeyedUnarchiver unarchiveObjectWithData:[defaults objectForKey:@"yourKey"];
查看http://soff.es/archiving-objective-c-objects-with-nscoding
答案 1 :(得分:1)
您需要序列化它。
来自NSUSerDefaults的苹果文档:
NSUserDefaults类提供了访问常用类型(如浮点数,双精度数,整数,布尔值和URL)的便捷方法。默认对象必须是属性列表,即(或集合的实例组合)的实例:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。如果要存储任何其他类型的对象,通常应将其存档以创建NSData实例。有关更多详细信息,请参阅“首选项和设置编程指南”。
答案 2 :(得分:1)
答案 3 :(得分:1)
是的,有可能,只需要在存储&amp;存储时保持NULL值。检索它,