我在下面的代码中有我想要的按钮单击将一个项目(toDoItem是NSString)添加到一个数组(toDoitems)。这部分有效。但后来我想保存它,以便在设备重启后数据可用。从其他答案看来,NSUserDefaults是最好的方式。它编译,但然后在按钮上单击它崩溃...任何提示???
- (IBAction)unwindToList:(UIStoryboardSegue *)segue
{
XYZAddToDoItemViewController *source = [segue sourceViewController];
XYZToDoItem *item = source.toDoItem;
if (item !=nil) {
[self.toDoitems addObject:item];
[[NSUserDefaults standardUserDefaults] setObject:self.toDoitems forKey:@"itemArray"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self.tableView reloadData];
}
}
答案 0 :(得分:1)
对象必须是属性列表,即(或集合的实例组合)的实例:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。如果要存储任何其他类型的对象,通常应将其存档以创建NSData实例,然后将其保存在NSUSerDefaults对象中。
请参阅NSUserDefaults doc