【发布时间】:2011-12-25 16:27:25
【问题描述】:
我有一个 Plist 文件(在捆绑包之外),用于存储用户的收藏夹。加载后,它按预期工作,Plist 被加载到表中。
但是,当您向 Plist 添加新项目时:plist 文件(在捆绑包之外)会更新。如日志所示,触发了重新加载 tableview。但是,数据实际上并没有从 Plist 重新加载,它只是使用现有的 (Array) 值。除非您退出并重新加载整个应用程序,否则更新后的 Plist 会显示在表格中。
我怎样才能让我的表从更新的 Plist 中真正重新加载,而不仅仅是使用原始数组。
谢谢。
我使用此代码从 Plist 获取数据 - 工作。
NSMutableArray *rawFavArray = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];
我使用它来遍历数组以创建表格的单元格信息 - 工作。
return [favReloadArray objectAtIndex:indexPath.row];
我使用它来重新加载表(在 viewWillApear 内) - 不工作,触发日志,但不重新加载 Plist。
[self.tableView reloadData];
当我尝试更改 Plist 中的数据时 - 我可以这样做,但除非我退出应用程序并重新开始,否则任何更改都不会显示在表格中。
【问题讨论】:
-
听起来您正在使用新项目创建一个新数组,然后将该数组保存到 plist 文件中,但不将数组提供给 tableview,因为它是新内容。请编辑您的问题以包含您的源代码,以便我们向您展示它是如何完成的。
-
reloadData 只告诉 UITableView 重新加载可见单元格并调用委托方法。它不会重新加载任何数组或模型对象。也就是说,无论如何,您都不应该在应用程序之外修改 plist ——尤其是在 iPhone 上,这几乎是不可能的(除非越狱)。
标签: ios uitableview plist reload