можно синхронизировать файлы ICloud, просто создавать файлы в контейнере вездесущности, как это:Можно ли использовать API NSFileManager для управления файлами в iCloud?
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *containerURL = [fileManager URLForUbiquityContainerIdentifier:nil];
NSURL *dirURL = [containerURL URLByAppendingPathComponent:@"files" isDirectory:YES];
NSError *error;
[fileManager createDirectoryAtURL:dirURL withIntermediateDirectories:NO attributes:nil error:&error];
NSURL *icloudURL = [dirURL URLByAppendingPathComponent:@"somefile.txt"];
[fileManager createFileAtPath:[icloudURL path] contents:someData attributes:nil];
Это работает и, кажется, простой и простой способ поместить файлы в ICloud и все же я не мог найти такую примеры в документации или подсказки, что такое использование API разрешено. Уточнение вопросов: Это безопасно? Возможно ли это в документации Apple API? Есть ли какие-либо известные проблемы?
Примечания:
- Ищу простейшим способом для управления кучу несвязанных файлов в ICloud.
- Этот подход проще для setUbiquitous: itemAtURL: destinationURL: error: -method, потому что он позволяет сохранять файлы ad-hoc из NSData без создания временного файла в изолированной программной среде приложения и перезаписывает существующие файлы без дополнительной проверки на этот случай ,
- В документе setUbiquitos-API говорится: «У вашего приложения должен быть активный объект презентационного файла, настроенный для контроля указанного файла или каталога перед вызовом этого метода». и в руководстве по дизайну iCloud говорится: «Всегда используйте координатор файла для доступа к файлу или файлу iCloud». Это заставляет меня беспокоиться, если данный код проблематичен.
- Я вижу необходимость в FileCoordinator/FilePresenter, когда согласованность многих файлов f.e. в каталоге пакетов необходимо поддерживать. Но это слишком много накладных расходов, если вы просто хотите управлять кучей независимых файлов в облаке. Особенно учитывая характер этого API.
- Я рассмотрел использование UIDocument: обработка папки в качестве документа не похожа на хорошую подгонку, учитывая класс load/store-everything-at-once. Рассмотрение каждого файла как документа выглядит нормально, но довольно громоздко.