Можем ли мы определить, что изменилось в пакете файлов iCloud?

Я пытаюсь использовать UIDocument с поддержкой iCloud с NSFileWrapper на основе каталога (он же пакет файлов) для поддержания сложного состояния приложения. В моем приложении у пользователя может быть множество различных конфигураций (вроде автомобилей, в которых есть настройки сидений для каждого потенциального водителя).

Для каждого отдельного состояния я добавляю обычный файл NSFileWrapper в общий пакет файлов.

Запись и чтение моего UIDocument в/из облака работает нормально. Я также получаю уведомления, когда пакет файлов изменился.

Проблема в том, что я не могу понять из уведомления, какие из дополнений или изменений в подфайлах (т. е. состояниях) вызвали изменение пакета.

Я попытался переопределить представленный SubitemDidChangeAtURL в своем пользовательском UIDocument, но это дает мне только URL-адрес пакета. Я также экспериментировал с методом matchContentsOfURL файловой оболочки, но это не кажется правильным, поскольку у дочерних файловых оболочек нет «настоящего» URL.

Комментарии и предложения приветствуются.


person Mike M    schedule 22.10.2012    source источник


Ответы (1)


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

person Mike M    schedule 05.11.2012