在我的应用程序中,我正在尝试做一件简单的事情 - 将txt文件和图像文件保存到iCloud中,然后将其检索回来在应用程序上打开它。
现在,我可以将txt和图像文件保存到iCloud中 - 没问题。我甚至可以从iCloud中提取文档的URL和文件名 - 也没问题。但我的问题是,如何打开txt文件?从iCloud打开txt文件并获取文本内容的示例代码是什么?我的txt文件文档是UIDocument的子类,如果有帮助的话。
答案 0 :(得分:1)
基本上,在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的会话希望它有所帮助。