2012-09-01 108 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

希望它可以幫助檢查蘋果的會話。