あなたがこの質問をしてから 4 か月ほど経っていることに気付きました。たぶん、これはここで魂を求めている他の人たちの助けになるでしょう.
基本的に、iOS では、最初にすべてのドキュメントを照会して UIDocument を開き、次に iCloud が応答するものを開きます。クエリを開始する方法は次のとおりです。
NSURL *baseURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
if (baseURL)
{
_metadataQuery = [[NSMetadataQuery alloc] init];
[_metadataQuery setSearchScopes:[NSArray arrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like '*'", NSMetadataItemFSNameKey];
[_metadataQuery setPredicate:predicate];
CL_DLog(@"Start query - %d",[_metadataQuery startQuery]);
}
上記のコードを実行する前に、これらの通知をサブスクライブして応答を受け取ります
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryDidFinish:) name:NSMetadataQueryDidFinishGatheringNotification object:_metadataQuery];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryDidFinish:) name:NSMetadataQueryDidUpdateNotification object:_metadataQuery];
次に、応答でドキュメントを開くことができます
YourUIDocumentClassName *document = [[YourUIDocumentClassName alloc] initWithFileURL:documentURL];
if ([document documentState] != UIDocumentStateClosed)
{
CL_DLog(@"FYI - metadata document state is not StateClosed.");
}
[document openWithCompletionHandler:^(BOOL success) {
....
icloud と UIDocument で Apple のセッションを確認できます https://developer.apple.com/videos/wwdc/2012/?id=218
それが役に立てば幸い。