Как правильно управлять файлами iCloud через NSFileManager?

Я пытаюсь добавить iCloud в приложение iOS / Mac с помощью методов iCloud в NSFileManager (без документов или координаторов файлов). Приложение должно синхронизировать аудиофайлы в разных случаях; создавать, удалять и метаданные. Это не приложение стиля сотрудничества, поэтому я не очень беспокоюсь о конфликтах и ​​т. Д. У меня есть что-то основное, но я столкнулся с некоторыми основными вопросами, на которые я не могу найти окончательных ответов.

  1. При использовании iCloud задействованы две локальные каталоги: каталог песочницы, в котором находится файл, и каталог контейнера вездесущности. Как только я включу файл для вездесущности, должен ли я начать взаимодействие с файлом в контейнере ubiquity напрямую или мне нужно продолжить взаимодействие с файлом песочницы и нажатием / вытаскиванием изменений из копии вездесущности? Похоже, что последнее лучше, так что я не потеряю все файлы пользователей, если они отключат iCloud (не уверен, что происходит с файлами в контейнере для вездесущности в этом случае).

  2. Если я поддерживаю два файла, есть ли предпочтительный способ push / pull инкрементных изменений в / из контейнера вездесущности? Насколько я понимаю, если пользователь меняет файл на данном устройстве, все остальные устройства получают инкрементные изменения в своей локальной копии вездесущности (если скачали). Должен ли я просто копировать файл целиком в мой локальный файл песочницы каждый раз, когда файл вездесущности изменяется и наоборот?

Постоянное копирование файлов в контейнер ubiquity по мере их модификации не кажется хорошей стратегией для меня и может даже привести к тому, что iCloud думает, что файл больше изменился, чем на самом деле. Вы можете напрямую взаимодействовать с файлами в контейнере ubiquity, работая с ними так же, как и файл в вашей «обычной» изолированной песочнице. Это модель, предписанная во всей документации iCloud, редкая, как это может быть.

Вы правы, что вам нужно иметь возможность справляться с ситуацией, когда пользователь уходит от iCloud. Существуют способы перемещения файла из контейнера ubiquity, а некоторые из новых API iOS 6 упрощают обнаружение, если пользователь включен iCloud, хотя это область, в которой мы могли бы использовать больше API.

  • Создание пользовательского форматированного массива слов из файла данных CSV
  • Приложение зависает при удалении документа iCloud при выполнении  руководства с использованием NSFileCoordinator и DispatchQueue
  • Совместное использование базы данных между несколькими приложениями быстрого доступа
  • Доступ к атрибутам файлов и доступ к базам данных sqlite
  • NSFileManager читает файлы с сервера?
  • Нужно ли создавать подпапки в Documents перед вызовом writeToFile с путём, который содержит новую папку?
  • Где мое приложение хранит большое количество PDF-файлов в iOS?
  • Как узнать, как файл записывается через NSFileManager
  • Не удалось скопировать файл из пакета в каталог «Документы», почему fileExistsAtPath возвращает ошибку?
  • Скопировать папку (с содержимым) из пакета в каталог Документы - iOS
  • Загружать текстовый файл с определенного места
  • Давайте будем гением компьютера.