最近,当调查UIPickerView的一些奇怪的UI行为时,我得出了这样的结论,那是因为我正在重新加载它的组件,它被称为观察NSManagedObjectContextObjectsDidChangeNotification。事情是,至少我很确定这将始终从主线程中调用。但是我错了。我使用UIManagedDocument,有时我从另一个线程以下通知:CoreData ContextObjectsDidChangeNotification从另一个线程调用
NSConcreteNotification 0x14a2664b0 {name = NSObjectsChangedInManagingContextNotification; object = <NSManagedObjectContext: 0x14a3e1be0>; userInfo = {
invalidatedAll = (
"0xd00000000d5c000e <x-coredata://B12EF0BD-E372-44D2-AF2F-8E28C5EF3E00/AdditionalAssetAttributes/p855>",
"0xd00000000d58000e <x-coredata://B12EF0BD-E372-44D2-AF2F-8E28C5EF3E00/AdditionalAssetAttributes/p854>",
"0xd00000000d5c000c <x-coredata://B12EF0BD-E372-44D2-AF2F-8E28C5EF3E00/Asset/p855>",
"0xd00000000d58000c <x-coredata://B12EF0BD-E372-44D2-AF2F-8E28C5EF3E00/Asset/p854>",
"0xd000000001d40018 <x-coredata://B12EF0BD-E372-44D2-AF2F-8E28C5EF3E00/SidecarFile/p117>",
"0xd000000001d00018 <x-coredata://B12EF0BD-E372-44D2-AF2F-8E28C5EF3E00/SidecarFile/p116>"
);
managedObjectContext = "<NSManagedObjectContext: 0x14a3e1be0>";
我的问题是:没有人知道为什么这个通知被叫什么名字?什么是invalidateAll元素的目的。此外,我不知道AdditionalAssetAttributes或SidecarFile是。
谢谢!
你观察'NSObjectsChangedInManagingContextNotification'或'NSManagedObjectContextObjectsDidChangeNotification'?你的问题说一个,但你的输出显示另一个。 –
我想'NSObjectsChangedInManagingContextNotification'是NSManagedObjectContextObjectsDidChangeNotification'的'值。 –
刚试过这里:'的NSLog(@ “%@”,NSManagedObjectContextObjectsDidChangeNotification);'打印:'NSObjectsChangedInManagingContextNotification' –