Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos CoreData完成从磁盘读取数据时是否有通知?_Macos_Cocoa_Core Data - Fatal编程技术网

Macos CoreData完成从磁盘读取数据时是否有通知?

Macos CoreData完成从磁盘读取数据时是否有通知?,macos,cocoa,core-data,Macos,Cocoa,Core Data,我有一个Mac(不是文档)应用程序,它使用CoreData 启动应用程序时,它读取存储在文件系统上的数据 我必须根据使用CoreData存储的信息在-(void)ApplicationIDFinishLaunching中设置一些内容 所以,当我的应用程序读取磁盘上的所有内容时,如果知道这一点就好了 如果我在-(void)ApplicationIDFinishLaunching中进行设置,则无法工作。如果我在几秒钟后做,它就会工作 谢谢 如果您使用的是自动准备自己内容的对象控制器,则可以观察排列对

我有一个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
中有了它,它工作得很好。谢谢!:)