iOS确保在访问之前打开文档

时间:2013-12-31 07:39:44

标签: ios core-data document

从关闭状态打开UIDocuments时,我知道它是在另一个线程上完成的。我的问题是,如果我的主线程上有代码可以访问文档(比如执行获取请求),那么在我尝试访问文档之前,如果打开已关闭的文档,如何保证文档将打开异步?

2 个答案:

答案 0 :(得分:2)

不是试图阻止线程,而是阻止应用程序的用户访问文档,直到它打开。这就是完成处理程序的用途。

- (void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler

调用完成处理程序时,只需关闭文档打开时显示的任何临时用户界面。这样,在文档打开时没有线程被阻塞,并且应用程序保持响应(尽管没用)。

答案 1 :(得分:0)

您应该使用documentState类的UIDocument属性。有关详细信息,请参阅此文档documentState description

返回以下枚举器进行检查:

enum {
    UIDocumentStateNormal          = 0,
    UIDocumentStateClosed          = 1 << 0,
    UIDocumentStateInConflict      = 1 << 1,
    UIDocumentStateSavingError     = 1 << 2,
    UIDocumentStateEditingDisabled = 1 << 3   }; typedef NSInteger UIDocumentState;

来自描述: UIDocumentStateNormal就是你想要的,因为:
文档已打开,已启用编辑,并且没有与之关联的冲突或错误。