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

时间:2013-06-10 21:38:16

标签: ios core-data initialization fetch

在我的viewWillAppear中,我执行多个获取请求。我注意到在第一次获取请求时,即使我知道应该找到项目,也没有找到任何内容。我尝试在执行第一次获取请求之前休眠主线程并确定找到了足够多的项目。我只是在模拟器上奔跑了。

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

我还检查了NSError的第一个获取请求没有延迟,它是null。

编辑:

我的viewWillAppear代码已被请求,所以在这里。虽然不是很有帮助。

    [NSThread sleepForTimeInterval:0.1];
    for (NSString *category in self.categories) {
        [self updateSection:category];
    }

self.cateogires只是我的表视图和updateSection的部分:更新部分。

EDIT2:

我用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

我认为我的问题是我没有使用[myManagedDocument openWithCompletionHandler:]的completionHandler来等待并执行我的获取请求。但是,如果我在文档关闭时查询,为什么会得到结果呢?

1 个答案:

答案 0 :(得分:0)

我建议您尝试changing concurrency type

NSMainQueueConcurrencyType。这将使操作顺序进行。