iOS 7 NSUserDefaults用于存储NSMutableArray崩溃

时间:2014-07-15 20:10:11

标签: ios7 nsmutablearray nsuserdefaults

我在下面的代码中有我想要的按钮单击将一个项目(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];
    }
}

1 个答案:

答案 0 :(得分:1)

对象必须是属性列表,即(或集合的实例组合)的实例:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。如果要存储任何其他类型的对象,通常应将其存档以创建NSData实例,然后将其保存在NSUSerDefaults对象中。

请参阅NSUserDefaults doc