gpt4 book ai didi

iphone - 为什么 UITableView 从 ModalView 返回后会丢失 ManagedObjectContext?

转载 作者:行者123 更新时间:2023-12-03 20:53:58 24 4
gpt4 key购买 nike

我使用以下内容创建了一个基于窗口的应用程序

  • TableViewController(没有 XIB 文件)
  • 一个 ViewController(带有 XIB 文件)<-- 用作模态视图
  • 用于存储一些数据的 CoreData 模型

我设法加载应用程序并使用来自实体的数据填充 TableView,并且我能够滚动浏览 TableView 的所有单元格,没有任何问题。

我添加了一个 UIBarButton 项(rightBarButton),它会导致出现模态视图以供用户输入一些数据。模型 View 有“保存”和“取消”按钮。

问题是,一旦我按下取消按钮,我就会返回到 TableView,但是如果我尝试滚动 tableview 中的项目,应用程序就会崩溃。

经过 4 个小时的 Google 和 StackOverflow 搜索后,我无法明白我的应用程序崩溃的原因。然而,我确实注意到调试器在我第二次滚动表格 View 时(在模态视图被关闭之后)将 ManagedObjectContext 设置为 NIL,尽管没有数据更改并且没有发生插入/删除。

我尝试使用计时器来调用 reloadData,因为我在 StackOverflow 上找到了一些答案,但这不起作用。我尝试将 ManagedObjectContext 设置为带有保留的属性,并删除了所有出现的 [myManagedObjectContext release] 以避免提前释放它,但这没有帮助。

看来我犯了一个明显的错误,但我不确定在哪里。

请帮忙。

最佳答案

ivars 不会仅仅因为在其他地方发布(至少在 iOS 4.3 中)而变成 nil。因此,过度释放并不是 myManagedObjectContext 变为 nil 的具体原因。假设您使用访问器来引用您的 ivars(您应该这样做),请手动实现 setManagedObjectContext: 并在其中放置一个断点以查看谁在调用它。或者,您可以向 myManagedObjectContext 添加 gdb 观察点以查看内存何时更改。

您没有指出崩溃时的崩溃堆栈是什么。您应该关注崩溃时正在访问的内存,并确保崩溃是由于内存违规而不是异常造成的。检查您的调试器输出。通常它会告诉您发生了什么。

关于iphone - 为什么 UITableView 从 ModalView 返回后会丢失 ManagedObjectContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6643097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com