NSUserDefaults是否可以使用自定义对象来保存NSArray?
答
你必须编码/解码与你的目标对象(这是你的阵列)和归档阵列的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
答
您需要序列化它。
从苹果文档NSUserDefaults的:
的类NSUserDefaults的提供用于访问公共类型,例如浮标方便的方法,双打,整数,布尔值,和URL。一个默认对象必须是一个属性列表,也就是一个实例(或集合的实例组合):NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。如果你想存储任何其他类型的对象,你通常应该将其存档以创建一个NSData实例。有关更多详情,请参阅首选项和设置编程指南。
答
是的,这是可能的,只是你必须同时存储&检索其采取NULL值的照顾,
不忘记[默认同步] – Jacky 2014-06-13 22:35:20
感谢他帮我很多 – 2016-06-14 12:47:15
它不是保存整数值 – 2016-10-27 10:48:20