【发布时间】:2011-10-02 08:30:03
【问题描述】:
我已经使用以下内容创建了一个基于窗口的应用程序
- TableViewController(没有 XIB 文件)
- ViewController(带有 XIB 文件)
- 用于存储一些数据的 CoreData 模型
我设法加载应用程序并使用来自实体的数据填充 TableView,并且我能够滚动 TableView 的所有单元格,没有任何问题。
我添加了一个 UIBarButton 项 (rightBarButton),它会显示一个模态视图,供用户输入一些数据。模型视图有一个保存和取消按钮。
问题是,一旦我按下取消按钮,我就会返回 TableView,但如果我尝试滚动浏览 tableview 中的项目,应用程序就会崩溃。
在 Google 和 StackOverflow 搜索 4 小时后,我无法看到我的应用崩溃的原因。然而,我确实注意到调试器在我第二次滚动 tableview 时(在模态视图被关闭后)将 ManagedObjectContext 设置为 NIL,尽管没有更改任何数据,也没有发生插入/删除。
我尝试使用计时器调用 reloadData,因为我在 StackOverflow 上找到了一些答案,但这不起作用。我尝试将 ManagedObjectContext 设置为具有保留并删除所有出现的 [myManagedObjectContext release] 的属性以避免比需要更早地释放它,但这没有帮助。
似乎我犯了一个明显的错误,但我不确定在哪里。
请帮忙。
【问题讨论】:
-
您是否实现了
viewDidUnload和/或didRecieveMemoryWarning,如果是,您是否在其中的任何位置设置您的self.managedObjectContext = nil;? -
我实现了 didUnload 但我没有设置 managedobjectcontext=nil 这会导致另一个问题
-
@Paul.s 你是对的,我无意中将托管对象上下文设置为 nil,这是我明显的错误。如果您可以发布答案,我会接受。谢谢。
标签: iphone xcode uitableview core-data ios4