【问题标题】:Initial coredata save freezes app初始 coredata 保存冻结应用程序
【发布时间】:2011-11-17 17:50:02
【问题描述】:

我有一个 iOS 应用程序,它使用具有三种不同模型的 coredata。数据从服务器的 json 提要中提取,然后保存。每个 API 调用都使用 NSOperationQueue 在线程上运行,因此它们不会同时执行。在最后一次调用中,我保存到正在存储的最大模型,在保存发生后应用程序挂起。 UI 变得无响应并且调试器没有给出错误。这仅在应用程序的第一次加载时发生,之后每个后续加载都运行完美。我尝试仅加载最终的 api 调用,但错误仍然发生。我收到委托回调 controllerDidChangeContent: 并且在方法中什么也不做。我难住了。谢谢大家的帮助。

【问题讨论】:

  • 您是否异步保存数据?

标签: ios core-data nsoperationqueue


【解决方案1】:

它正在“冻结”您的应用程序,因为您很可能通过 NSManagedObjectContextDidChangeNotification 将保存合并回主 NSManagedObjectContext。这是 iOS 5.0 之前的已知限制。

您可以更新到 5.0 并使用添加的父子 MOC 设计,也可以跳过合并上下文和 -reset 主上下文并强制它在保存后重新加载相关数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 2012-07-22
    相关资源
    最近更新 更多