Macos CoreData完成从磁盘读取数据时是否有通知?
我有一个Mac(不是文档)应用程序,它使用CoreData 启动应用程序时,它读取存储在文件系统上的数据 我必须根据使用CoreData存储的信息在-(void)ApplicationIDFinishLaunching中设置一些内容 所以,当我的应用程序读取磁盘上的所有内容时,如果知道这一点就好了 如果我在-(void)ApplicationIDFinishLaunching中进行设置,则无法工作。如果我在几秒钟后做,它就会工作Macos CoreData完成从磁盘读取数据时是否有通知?,macos,cocoa,core-data,Macos,Cocoa,Core Data,我有一个Mac(不是文档)应用程序,它使用CoreData 启动应用程序时,它读取存储在文件系统上的数据 我必须根据使用CoreData存储的信息在-(void)ApplicationIDFinishLaunching中设置一些内容 所以,当我的应用程序读取磁盘上的所有内容时,如果知道这一点就好了 如果我在-(void)ApplicationIDFinishLaunching中进行设置,则无法工作。如果我在几秒钟后做,它就会工作 谢谢 如果您使用的是自动准备自己内容的对象控制器,则可以观察排列对
谢谢 如果您使用的是自动准备自己内容的对象控制器,则可以观察
排列对象
以了解它们何时获取内容。这并不保证实际对象不是故障。事实上,这是核心数据的主要优势之一:对象是从磁盘延迟加载的
如果出于某种原因希望确保大多数磁盘活动都是在applicationdFinishLaunching
中进行的,则可以执行自定义提取,该提取不会将对象作为故障返回。在核心数据文档中查找“预取”。但是,无法保证核心数据不会在以后由于内存限制而导致这些对象出错,从而在再次加载这些对象时导致另一次磁盘读取
当然,您也可以使用
NSBinaryStoreType
,在这种情况下,当将整个存储添加到持久存储协调器时,它会同步加载到内存中。取消归档的操作是什么?你在使用对象控制器吗?unarchives可能是个错误的词。我用“读”来代替它。是的,我使用ArrayController谢谢你!我试图通过以下方式观察arrangedObjects:[myArrayController添加观察者:self forKeyPath:@“arrangedObjects”选项:NSKeyValueObservingOptionNew context:NULL]
和-(void)observeValueForKeyPath:(NSString*)对象的键路径:(id)对象更改:(NSDictionary*)更改上下文:(void*)上下文{NSLog(@“test”);}
,但该方法未被调用。我做错了什么?调用addObserver
时,myArrayController
是否为非零?@noa否,为零。我在AppController的init方法中添加了观测者。现在我在applicationdFinishLaunching
中有了它,它工作得很好。谢谢!:)