最近,當調查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' –