У меня есть приложение Mac Shoebox с UIDocument
основано на iOS-аналоге.Приложения iCloud & Shoebox: Как атомизировать синхронизацию пакета файлов?
Я пытаюсь найти оптимальную стратегию для синхронизации данных между Mac и iOS через iCloud.
Я не могу принять NSDocument
в приложении Mac (это приложение для обувной коробки без концепции отдельных документов, похожих на альбомы в iTunes).
Мой план для приложения Mac это:
- магазин каждый элемент в пакете файлов в директории «данных»
- Использование файла упаковщики написать пакету
- координации использования файлов для синхронизации чтения/операции записи (синхронизации на "корневой" папке пакета файлов)
Для приложения IOS:
- Загрузите файл пакеты, приложение Mac, созданные в каталоге данных,
UIDocument
s - Положитесь на UIDocument для координации изменений уведомлений/файла
- Я не буду использовать папку
Documents
, потому что я не хочу, пользователю видеть документы в приложении Настройки
Мои вопросы:
- Как я могу гарантировать, что мои файлы пакетов из Mac синхронизированы через минусы istent путь к iOS? (т. е. изменения в несколько файлов в пакете обрабатываются атомарно как одно изменение)
- Достаточно ли установить бит «файла» в каталоге (на самом деле я делаю это, экспортируя UTI)?
- Есть ли способ на самом деле имитировать/проверить это?
Спасибо Wil. Я думал об использовании NSDocument, но это связано с собственными проблемами. Я обнаружил, что в NSDocument существует больше кода пользовательского интерфейса, например, конфликты обработки, отображение сообщений об ошибках и т. Д. Все они используют имя документа, которое в моем случае является уникальной строкой, которая не имеет смысла для пользователя. Кроме того, я обнаружил, что обработка нескольких документов в одном NSWindow является сложной задачей. Сказав это, я дам NSDocument еще один выстрел. – Mark
Вы должны иметь возможность вызвать -setDisplayName: или subclass -displayName, чтобы установить имя в нечто более человечное, например имя вашего приложения. –
Как вы справляетесь с конфликтами версий в пользовательском интерфейсе? Используете ли вы по умолчанию лист предупреждений NSDocument или есть способ его настройки? В моем случае я мог бы прагматично объединить конфликтующие версии в 80% случаев в моем приложении без взаимодействия с пользователем. – Mark