Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.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
iOS核心数据“;初始化时间;?_Ios_Core Data_Initialization_Fetch - Fatal编程技术网

iOS核心数据“;初始化时间;?

iOS核心数据“;初始化时间;?,ios,core-data,initialization,fetch,Ios,Core Data,Initialization,Fetch,在我的视图中,我将执行多个提取请求。我注意到,在第一次获取请求中,即使我知道应该找到项目,也没有找到任何内容。在执行第一个获取请求之前,我尝试休眠主线程,并确保找到足够的项。顺便说一句,我也只是在模拟器上运行 所以我的问题是,核心数据是否需要一些时间来“初始化”或其他什么?在设备上测试时,我是否需要担心这个问题(我还没有开发人员成员资格,所以无法在设备上测试)?有没有办法“检查”执行提取请求是否安全 我还检查了第一个fetch请求的NSError,没有延迟,结果为null 编辑: 我的VIEWW

在我的视图中,我将执行多个提取请求。我注意到,在第一次获取请求中,即使我知道应该找到项目,也没有找到任何内容。在执行第一个获取请求之前,我尝试休眠主线程,并确保找到足够的项。顺便说一句,我也只是在模拟器上运行

所以我的问题是,核心数据是否需要一些时间来“初始化”或其他什么?在设备上测试时,我是否需要担心这个问题(我还没有开发人员成员资格,所以无法在设备上测试)?有没有办法“检查”执行提取请求是否安全

我还检查了第一个fetch请求的NSError,没有延迟,结果为null

编辑:

我的VIEWWILLEXPENCE代码已被请求,因此在这里。不过也不是很有帮助

    [NSThread sleepForTimeInterval:0.1];
    for (NSString *category in self.categories) {
        [self updateSection:category];
    }
self.cateogires只是我的表视图的部分,updateSection:更新这些部分

编辑2:

我用NSLog语句做了进一步的调查,下面是我的发现

我添加了NSLog语句来记录在获取请求后找到的对象数量以及文档的当前状态。由于某些原因,即使文档似乎已关闭,我仍会获得获取结果

Category1 has 3 values
Doc is open? NO
Category2 has 6 values
Doc is open? NO
Category3 has 3 values
Doc is open? NO
Category4 has 2 values
Doc is open? NO
我认为我的问题在于我没有使用[MyManagedDocumentOpenWithCompletionHandler:]的completionHandler来等待和执行我的获取请求。但是,如果我查询文档何时关闭,为什么会得到fet结果?

我建议您尝试


NSMainQueueConcurrencyType
。这将使操作有序

您可以从ViewWillAppeard方法中发布代码吗?可能是托管对象上下文或持久存储协调器或持久性堆栈中的任何内容尚未初始化且为nil?在nil对象上调用fetch请求不会出现错误,它只会根据Objective-C策略对nil调用执行任何操作。或者,您可能有一个持久存储协调器,但尚未添加任何持久存储-尽管我认为这会产生错误,但不确定。moc不能确定为零,因为只有for循环的第一个循环未命中。所有其他循环工作正常,并使用相同的moc发出不同的获取请求。而且,当我像在代码中那样休眠线程时,第一个循环工作正常;只有当我不睡觉的时候,它才会失败。有关这个问题的一些新信息,请参阅我的edit2