NSUserDefaults可以使用自定义对象保存NSArray吗?

Mar*_*1ni 6 cocoa-touch ios

标题几乎解释了它.我是否需要先对序列化对象,还是可能?

Wed*_*Wed 13

您必须对对象(在您的数组中)中的对象进行编码/解码,并将数组存档到NSData.

只需添加

<NSCoding>
Run Code Online (Sandbox Code Playgroud)

到你的对象的类(在你的数组中)并遵循你的编译器的警告:D

然后将您的数组归档如下:

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:yourArray];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:data forKey:@"yourKey"];


NSArray *array= [NSKeyedUnarchiver unarchiveObjectWithData:[defaults objectForKey:@"yourKey"];
Run Code Online (Sandbox Code Playgroud)

请查看http://soff.es/archiving-objective-c-objects-with-nscoding

  • 别忘了[默认同步] (2认同)