2012-09-01 110 views
0

在我的应用程序中,我试图做一件简单的事情 - 将一个txt文件和一个图像文件保存到iCloud中,然后将其恢复以在应用程序中打开它。从iCloud打开txt文件

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

+1

我认为这将有助于http://stackoverflow.com/questions/7795629/icloud-basics-and-code-sample – SAKrisT

回答

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 *文件= [[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

希望它可以帮助检查苹果的会话。