在我的應用程序中,我試圖做一件簡單的事情 - 將一個txt文件和一個圖像文件保存到iCloud中,然後將其恢復以在應用程序中打開它。從iCloud打開txt文件
現在,我可以將txt和圖像文件保存到iCloud中 - 沒問題。我甚至可以從iCloud獲取文檔的URL和文件名 - 這裏也沒有問題。但我的問題是,如何打開txt文件?什麼樣的代碼來從iCloud打開一個txt文件並獲取文本內容?我的txt文件文檔是UIDocument的一個子類,如果有幫助的話。
在我的應用程序中,我試圖做一件簡單的事情 - 將一個txt文件和一個圖像文件保存到iCloud中,然後將其恢復以在應用程序中打開它。從iCloud打開txt文件
現在,我可以將txt和圖像文件保存到iCloud中 - 沒問題。我甚至可以從iCloud獲取文檔的URL和文件名 - 這裏也沒有問題。但我的問題是,如何打開txt文件?什麼樣的代碼來從iCloud打開一個txt文件並獲取文本內容?我的txt文件文檔是UIDocument的一個子類,如果有幫助的話。
好吧,我注意到它就像你問這個問題後的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
希望它可以幫助檢查蘋果的會話。
我認爲這將有助於http://stackoverflow.com/questions/7795629/icloud-basics-and-code-sample – SAKrisT