【问题标题】:NSManagedObjectContextObjectsDidChangeNotification not always called instantlyNSManagedObjectContextObjectsDidChangeNotification 并不总是立即调用
【发布时间】:2011-12-06 05:42:59
【问题描述】:

我有一个使用 NSPersistentDocument 的 Mac 应用程序。我想在删除对象以使用 Core Data 保存此信息时收到通知。所以我正在监听 NSManagedObjectContextObjectsDidChangeNotification。通常在删除对象时立即调用它,但有时仅在保存持久性文档后才调用它,并且之前不会通知所有已删除的对象。因为我想让用户直接导出所有现有对象(而不是已删除的对象),我必须做什么才能立即收到通知以保存删除信息,还是必须以其他方式使用它?

【问题讨论】:

    标签: macos core-data nsmanagedobjectcontext nsnotifications nspersistentdocument


    【解决方案1】:

    NSManagedObjectContextObjectsDidChangeNotification 在 10.7 上不再像在 10.6 上那样频繁或快速地发出。您可以通过调用-[NSManagedObjectContext processPendingChanges] 来强制Core Data 发出通知(假设有更改)。

    【讨论】:

    • 谢谢。当从具有 ArrayController 作为其源的 TableView 中删除数据时,我想使用它。我可以中断另一部分以存储我需要的信息或调用 processPendingChanges 吗?
    • 你可以观察NSArrayController上的排列对象,并在那里执行processPendingChanges。
    • 谢谢,观察排列对象并调用 processPendingChanges 会立即发送通知。这正是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 2015-12-17
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 2014-08-23
    相关资源
    最近更新 更多