如何在表格视图中保存单元格?

How do I save cells in tableview?

我正在制作一个 idea/to-do 垫,它使用 UITableView 人们可以在其中添加他们的东西,然后将它们勾选。我已经为单元格指定了名称:'whatsNewItems',我希望它们是 NSMutableArray 的一部分。每次应用程序关闭并从历史记录中删除时,单元格都会恢复为我嵌入代码中的原始三个。我会使用 NSUserDefaults 吗?如果是,我该怎么做?

使用 NSUserDefaults 的诀窍是 而不是 获得 any 数据 "embedded in code"。相反,您应该从一开始就使用 NSUserDefaults 作为数据模型的来源。使用 registerDefaults 在启动时将初始数据放入 NSUserDefaults。然后,在您的 table 视图控制器中,从 NSUserDefaults 加载数据并将其复制到您的 mutable 数组中。这样,如果用户没有进行任何更改(可能是因为这是应用程序的第一次启动),您的初始数据将被使用,如果用户 已经 进行了更改,则更改数据被使用。随后,每当您的应用程序即将后台运行时,将数据写入 NSUserDefaults。

您可以这样使用 NSUserDefaults:

- (void) saveToDo:(NSArray*)items {
    [[NSUserDefaults standardUserDefaults] setObject:items forKey:@"user_to_do_items"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

- (NSArray*) getToDoItems
{
    NSArray* items = [[NSUserDefaults standardUserDefaults] arrayForKey:@"user_to_do_items"];
    return items;
}