假设包含您的数组中的对象是符合NSCoding
协议,可以使用
// let's take the NSString as example
NSArray *array = @[@"foo", @"bar"];
[[NSUserDefaults standardUserDefaults] setObject: [NSKeyedArchiver archivedDataWithRootObject:array] forKey:@"annotationKey"];
NSArray *archivedArray = [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"annotationKey"]] ;
如果他们符合NSCopying
协议,然后
// let's take the NSString as example
NSArray *array = @[@"foo", @"bar"];
[[NSUserDefaults standardUserDefaults] setObject: array forKey:@"annotationKey"];
NSArray *archivedArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"annotationKey"] ;
编辑
好吧,可能它不符合符合对象的NSArray
到NSCopying
协议,但它无疑适用于符合NSCoding
协议由布拉德·拉尔森指出了以下的答案的对象:
Storing custom objects in an NSMutableArray in NSUserDefaults
执行数组中的对象符合NSCoding? – CodaFi
可能的重复http://stackoverflow.com/questions/537044/storing-custom-objects-in-an-nsmutablearray-in-nsuserdefaults – HepaKKes