我注意到你问这个问题大约 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 https://developer.apple.com/videos/wwdc/2012/?id=218 上查看 Apple 的会话
希望对你有帮助。