Как правильно управлять файлами 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.

  • Использование NSFileManager и createDirectoryAtPath в Swift
  • Массив нескольких URL-адресов NSFileManager Swift
  • Создание файла в каталоге библиотеки на iphone
  • Доступ к атрибутам файлов и доступ к базам данных sqlite
  • Не удается обмен данными с помощью общих групп приложений для Today Extension
  • NSFileManager не удаляет файл, который существует
  • Проблема с памятью iOS (ARC) при загрузке и сохранении большого количества изображений с сервера
  • IOS isEqualToString не работает
  • Отключить резервное копирование папки документов и всех ее подпапок на icloud?
  • Сохранение изображений локально на устройстве iOS
  • Получение 0,2 ГБ дополнительного пространства в iPad
  • Interesting Posts

    Как отклонить SplashView в стиле Pagecurl в iPhone?

    Можно ли использовать PhoneGap в приложениях, созданных с помощью theos?

    Согласование ширины subview с надписью с помощью автозапуска

    Вращающаяся анимация, следующая за пальцем, из uibutton, которая следует за внешней дорожкой круга

    Cocoapods – Использование более старой версии pod после использования последних

    Знает ли CommonCrypto, когда мой ключ недействителен, когда я расшифровываю зашифрованный текст?

    Как загрузить файл в swift?

    Swift: как закрыть контроллер просмотра и контроллер навигации, запущенный с AppDelegate

    мыльный веб-сервис не работает в iphone

    спящий режим против центра уведомлений открыт

    Как отображать изображение в UIImageView с помощью URL и NSString в ios?

    Цветной оттенок / насыщенность от Photoshop до iOS

    Как создать категорию в Xcode 6 или выше?

    Parse.com UIRemoteNotificationType Устарела

    Как изменить размер большого пальца изображения UISlider программно

    Давайте будем гением компьютера.