2013-07-15 2 views
-3

Я сделал приложение, которое работает с записанными файлами, такими как волна MP4 и т. Д.Синхронизация файлов с iCloud

Я хочу синхронизировать свое приложение с iCloud, но я не знаю, как это сделать.

Какой метод лучше: на основе документа, ключ-значение или базовые данные?

А также у меня есть следующие вопросы:

  1. Можно ли удалить файл? Если да, то идет ли он к мусору?
  2. Можем ли мы переместить файл в другую папку?
  3. Как мы можем узнать о изменениях файлов?
  4. Есть ли какой-либо механизм, чтобы сообщить нам об изменениях/создании/удалении, которые произошли во время закрытия приложения?
+3

Вы должны [прочитать документацию Apple] (https://developer.apple.com/icloud/documentation/) в первую очередь. – Greg

+0

Не было ответа на вышеуказанные вопросы! – aakpro

+0

Чтобы ответить на ваш первый вопрос, прокрутите вниз до ** Три вида iCloud Storage ** в [этом документе] (https://developer.apple.com/library/ios/#documentation/General/Conceptual/iCloudDesignGuide/Chapters/ Introduction.html). – Greg

ответ

2

Консультирование Три вида ICloud хранения раздела в iCloud Design Guide дает нам следующее:

ICloud поддерживает три вида хранения. Чтобы выбрать правильный (или комбинацию) для своего приложения, убедитесь, что вы понимаете намерения и возможности каждого из них. Три типа хранилищ iCloud:

Ключевое значение хранения для дискретных значений, таких как настройки, настройки и простое состояние приложения.

Хранилище документов для видимой на уровне пользователя информации, такой как документы обработки текста, чертежи и сложное состояние приложения.

Основные хранилища данных для приложений в стиле обуви и серверных решений для многоуровневых баз данных для структурированного контента. Хранилище iCloud Core хранится на хранилище документов и использует те же API iCloud.

Так что, в основном, это зависит от того, что вы хотите сделать. Вышеприведенный параграф является довольно понятным и окончательным, однако, если вы все еще не можете решить, прочитайте Designing for Key-Value Data in iCloud, Designing for Documents in iCloud и Designing for Core Data in iCloud, чтобы узнать об особенностях и ограничениях каждого варианта.


iCloud File Management должен предоставить ответы на другие ваши вопросы.

Вы управляете файлы, расположенные в хранилище документов ICloud, используя обычные методы NSFileManager, что означает, что вы можете move, delete и copy файлы так же, как вы бы в локальном хранилище.

В отличие от OS X, iOS не содержит мусорную корзину, в которую были удалены удаленные файлы. Если вы удалите файл, он исчезнет. Если вы хотите использовать функцию мусора, вам придется реализовать ее самостоятельно.

This guide описывает, как открыть файлы в папке ICloud вашего приложения. Ключевая строка кода здесь

[[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(processFiles:) 
    name:NSMetadataQueryDidUpdateNotification 
    object:nil]; 

NSMetadataQueryDidUpdateNotification размещен обновления запроса метаданных. Если вы оставите его непрерывным, он будет публиковаться каждый раз, когда файл будет изменяться извне, поэтому вы можете предпринять соответствующие действия. Для получения дополнительной информации об этом см. Раздел NSMetadataQuery Class Reference.

Я не понимаю, почему вы должны сделать это, так как вы можете просто получить список файлов в настоящее время в ICloud, когда приложение запусках, и позволяет пользователю редактировать их. Не должно быть причин, по которым вам нужно знать, что файлы были изменены. Однако, если вам действительно нужно это сделать по какой-то причине, вы, вероятно, могли бы сохранить соответствующие данные, возвращаемые NSMetadataQuery локально, а затем загрузить этот файл, когда приложение запускает и сравнивает список, который вы сохранили, в список файлов в iCloud, и использовать это, чтобы выяснить, что изменилось в то же время.


Надеемся, что количество ссылок на документацию в этом ответе покажет, что на все ваши вопросы уже был дан ответ.

+0

Ничего себе, спасибо вам большое! Это была отличная помощь ... – aakpro

+0

Если это решило вашу проблему, не стесняйтесь нажимать на галочку рядом с ответом :) – Greg

Смежные вопросы