Данные BLOB-объектов в ансамблях

Я использую стратегию, при которой я сохраняю изображения и PDF-файлы как NSData в соответствующих управляемых объектах, которым они принадлежат. У меня проблема с синхронизацией с Ensembles из-за того, что PDF-файл не всегда переносится с одного устройства на другое. Теперь я не уверен, связано ли это с некоторыми недостатками в моем коде или это плохой способ синхронизации таких фрагментов данных. У кого-нибудь есть опыт в этом?

Я использую синхронизацию Ensembles 2.2 через CloudKit.


person Mathias Åberg    schedule 21.04.2015    source источник


Ответы (2)


Ансамбли должны справиться с этим нормально. Я использую его именно для этой цели, синхронизируя данные изображения, включая PDF.

Я бы внимательно посмотрел на обработку данных. Работает ли преобразователь значений (если вы его используете)? Способно ли устройство распаковывать и отображать данные PDF?

Альтернативой прямой синхронизации PDF является преобразование в такой формат, как PNG, перед размещением его в вашем магазине.

person Drew McCormack    schedule 21.04.2015
comment
Да, похоже, это сводится к моему коду, синхронизация работает, если я 1) Создать новый объект в блоке 1. 2) открыть блок 2 и синхронизировать 3) открыть блок один и сохранить данные в формате PDF и синхронизировать 4) открыть блок 2 и синхронизировать - person Mathias Åberg; 23.04.2015
comment
Опять же, я предполагаю, что проблема, с которой я столкнулся, может быть связана с моей реализацией. Я хранил PDF-файл в отдельном управляемом объекте, объект был добавлен к другому объекту через отношение «один ко многим». Когда я проверил, объект был создан, но связь не прошла через слияние. Я решил проблему, просто добавив свойство pdf к объекту и отказавшись от отношений. - person Mathias Åberg; 25.04.2015
comment
Хм, может тебе стоит обратиться в поддержку ансамбля. Возможно это баг. Если вы правильно устанавливаете отношения, они должны пройти. Было бы неплохо, если бы мы посмотрели на вашу модель и посмотрели, может ли быть проблема в ансамблях. - person Drew McCormack; 28.04.2015
comment
Хорошо, тогда я отправлю по электронной почте модель и реализацию. - person Mathias Åberg; 03.05.2015

Трансформируемый тип данных на самом деле просто двоичный с некоторыми дополнительными метаданными. Вы тестировали простую облегченную миграцию в существующем магазине? Я подозреваю, что миграция сработает и оставит существующие данные в хранилище.

Если вы хотите, чтобы существующие двоичные данные были фактически перемещены из файла SQLite, то вы ищете что-то более сложное.

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

Экспорт/импорт также будет работать. Обычно я рекомендую экспорт/импорт, когда облегченная миграция не работает. Это включает в себя средний объем кода, но, в конце концов, вы владеете кодом, понимаете весь процесс и можете настроить его в соответствии со своими потребностями.

person Rahul Mayani    schedule 21.04.2015