iCloudに保存されているUIDocumentを開くときに問題が発生することがあります。iCloudが利用可能かどうかを確認し、NSMetaDataQueryの結果を取得した後、アプリの最初に次のコードを呼び出します。これは、すべてのケースの98%で機能します。たまに(たとえば、アプリを再インストールした後)、completionHandlerが呼び出されないことがあります。
FRNBDocument *doc = [[FRNBDocument alloc] initWithFileURL:fileURL];
[doc openWithCompletionHandler:^(BOOL success) {
NSLog(@"... doc: openedWithCompletionHandler");
コードからわかるように、新しいUIDocumentインスタンス(FRNBDocument)を初期化しているので、古いUIDocumentがまだ開いているため、これが開かない場合があります。
アプリを再び動作させる唯一の方法は、アプリを強制終了してから、settings.app> iCloud> Documents&Dataに移動し、オフにしてから再度オンにすることです。アプリに戻ると、UIDocsは問題なくロードされます。
他のアプリ(たとえば、sophiesticationによるxTrail)にも同じ問題があり、上記のトリックを実行した後にのみ、それらを再度実行できることに気付きました。
何が起こっている?