从iCloud打开txt文件

时间:2012-09-01 03:43:39

标签: ios icloud uidocument

在我的应用程序中,我正在尝试做一件简单的事情 - 将txt文件和图像文件保存到iCloud中,然后将其检索回来在应用程序上打开它。

现在,我可以将txt和图像文件保存到iCloud中 - 没问题。我甚至可以从iCloud中提取文档的URL和文件名 - 也没问题。但我的问题是,如何打开txt文件?从iCloud打开txt文件并获取文本内容的示例代码是什么?我的txt文件文档是UIDocument的子类,如果有帮助的话。

1 个答案:

答案 0 :(得分:1)

很好,我注意到你问这个问题后的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的会话

希望它有所帮助。