0

我刚刚完成了一个允许用户在表格视图中存储序列号列表的应用程序。应用程序存储数字的方式是存储在 NSMutableDictionary 中,然后写入持久性 plist 文件。该应用程序在测试期间运行良好。

但是,我刚刚为临时分发构建并打包了应用程序,现在当我从最终用户的角度测试应用程序时,数据没有被保存,即当我向我的 tableview 添加新行并输入时新数字,新行没有被创建,也没有任何东西被写入字典。我使用以下代码写入 plist(假设 dict 已填充):

[dict writeToFile:[appDelegate dataFilePath] atomically:YES];

在我的应用程序代表中:

- (NSString *)dataFilePath {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    return [documentsDirectory stringByAppendingPathComponent:kFilename];
}

我使用这个从磁盘读取plist:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithContentsOfFile:[appDelegate dataFilePath]];

这里有什么问题?

4

2 回答 2

1

如果你说你在持久化数据时遇到了麻烦,你真的应该显示你将这个 plist 文件写入磁盘的代码,并显示你从磁盘加载它的代码。否则,您是在要求我们推测性地调试您的代码。

如果您在应用程序包中执行此操作,这是一个可以在模拟器中工作的操作示例,但在设备上运行时则不行。

于 2010-10-22T22:33:43.177 回答
0

哦,我意识到了一些事情。我使用 4.2 beta SDK 完成了我的所有开发,现在运行使用 4.1 作为基础编译的应用程序,数据似乎没有持续存在!4.2中有什么新东西可以做到这一点吗?

于 2010-10-23T04:26:51.390 回答