Intereting Posts
Запустить приложение в режиме 3,5 дюйма на iPhone 5 Xamarin Monotouch CustomCell пуста Алгоритм сетки или черепицы для просмотра в представлении Вид UINavigationController и смещение в 20 пунктов Как открыть новое представление при щелчке по ячейке таблицы? Настройте выбранный диспетчер просмотра на вкладке перед загрузкой представления Запретить проверку кучи для NSString Должен ли я следовать рекомендациям по хранению данных iOS? Приложение iCloud активизируется при переключении iCloud вкл / выкл в настройках iOS 7.1 Найдите нижнее положение UILabel, чтобы можно было создать вторую UILabel Ярлык не отображается, когда приложение запущено на 3.1.3 Как удалить разделительную линию в iOS 7? Общепринятая практика при создании файлов Xib для универсальных приложений после выпуска iPhone5 Как инициализировать 2-й контроллер вида 1-й вид iOS Введите 'NSNotification.Name?' не имеет члена 'firInstanceIDTokenRefresh'

Совместимы ли NSPsistentDocument и UIManagedDocument?

Я хотел бы создать NSPersistentDocument в Mac OS X и прочитать этот документ как UIManagedDocument на iOS 7.

Это возможно?

Совместимы ли оба формата файлов?

Спасибо!

Интересный вопрос – я могу подтвердить, что основные файлы данных ядра совместимы. У меня есть приложение Mac и приложение iOS, используя тот же файл, который синхронизируется с помощью iCloud. Приложение представляет собой приложение на основе документов, и в настоящее время я храню фактический файл базы данных в iCloud, поэтому весь файл синхронизируется iCloud.

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

Apple одобрила приложение Mac, которое использует стандартный NSPsistentDocument для создания и сохранения файлов. К сожалению, они отклонили приложения iOS с некоторой неясной ссылкой на несоблюдение их правил хранения данных, заявив, что документы должны храниться в каталоге / Documents, если они должны быть скопированы в iCloud. Хорошо, если пользователь выбрал iCloud, тогда я храню файлы в местоположении iCloud, предоставляемом вызовами API.

Во всяком случае, я все еще жду, чтобы услышать от них, что конкретно не так с этим подходом, поскольку он, похоже, тот же, который используется Pages и другими приложениями на основе документов.

Если я попытаюсь использовать UIManagedDocument, то iOS создаст структуру папок и сохранит базу данных внутри этой структуры папок. В диалоговом окне «Файл -> Открыть» Mac отображается эта структура папок, а также файл, который по существу выглядит как обычный файл sqlite. Но тогда, возможно, OS X 10.8.4 не реализует последние данные iCloud / Core Data – кто знает …

EDIT Вот ссылка на примеры кода и видео, показывающие интеграцию приложений OSX и iOS с использованием Core Data и iCloud. http://ossh.com.au/design-and-technology/software-development/uimanageddocument-icloud-integration/

Я согласен, что это определенно возможно. Я использую NSPsistent документ в OS X 10.8 / 10.9 / 10.10 с бинарным базовым форматом данных (без оберток – простые файлы). На iOS я использую UIDocument. Основные данные отлично работают в обеих средах.

Apple говорит, что NSPersistentDocument не поддерживает iCloud. Правильнее сказать, что он не полностью поддерживается. Большая часть поддержки NSDocument (которая включает доступ к библиотеке документов iCloud из 10.8). Обработка конфликтующих файлов на открытых работах.

Вы не можете включить автоматическое сохранение (которое указано как требование для документов iCloud в Руководстве по проектированию iCloud). Autosave работает асинхронно и определенно не поддерживается NSPersistentDocument.

Поэтому, если вы справляетесь с сохранением файла и конфликтами, можно использовать NSPсерверный документ. Есть некоторые причуды: так, например, если изменение iCloud происходит в OS X для открытого документа, нормальный ответ NSDocument будет заключаться в том, чтобы автоматически возобновить документ. Этого не происходит – и нет предупреждения, что файл изменился, пока вы не собираетесь сохранить файл. Но, по крайней мере, есть предупреждение. На iOS легче обнаружить изменения, как это происходит с помощью UIDocumentStateChangedNotification.