Открытие txt файла из iCloud
В моем приложении я пытаюсь сделать простую вещь - сохранить текстовый файл и файл изображения в iCloud, а затем извлечь его обратно, чтобы открыть в приложении.
Прямо сейчас я могу сохранить как txt, так и файлы изображений в iCloud - без проблем. Я даже могу вытащить URL-адреса и имена файлов документов из iCloud - там тоже нет проблем. Но мой вопрос, как мне открыть TXT-файл? Какой пример кода, чтобы открыть текстовый файл из iCloud и получить текстовое содержимое? Мой текстовый файл документа является подклассом UIDocument, если это помогает.
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) {
....
Вы можете проверить сессию Apple на icloud и UIDocument https://developer.apple.com/videos/wwdc/2012/?id=218
Надеюсь, поможет.