Лучшая библиотека для отображения основных данных
Как разработчик я сталкиваюсь с обработкой данных каждый день. Обычное дело, что мне нужно обработать необработанные данные для объекта (NSManagedObject). Поэтому я использую AFNetworking для получения данных с удаленного сервера, и в результате работы AFNetworking у меня есть данные, которые могут быть представлены NSDictionary. Поэтому главное, что может занять много работы, - это преобразование этих необработанных данных в конкретные модели данных. Поэтому в Интернете есть много библиотек, которые могут выполнить эту тяжелую работу за нас:
MagicalRecord MagicalImport
Поэтому, как новичок в картографии, я хочу знать, какая библиотека лучше всего подходит для моих целей. Может быть, вы можете предложить еще один.
2 ответа
Каждая из упомянутых вами библиотек имеет разные цели:
MagicalRecord - упрощает обычные операции с базовыми данными (извлечение, вставка, удаление, настройка стека и т. Д.). Он не обрабатывает сопоставление JSON или любого другого формата с моделями базовых данных. Исправление благодаря @casademora: MagicalRecord может обрабатывать импорт с помощью пользовательских сопоставлений, используя шаги, описанные здесь. Тем не менее, MagicalRecord - довольно большая библиотека, используемая только для этой функциональности.
Mantle - значительно сокращает шаблон для модельных объектов в Objective-C (автоматические реализации NSCoding
, NSCopying
, -isEqual:
/ -hash
, так далее.). Включает адаптеры, такие как MTLJSONAdapter
а также MTLManagedObjectAdapter
для преобразования между представлениями модельных объектов. Это звучит так, как будто это лучше всего подходит для того, чего вы пытаетесь достичь. Если вы реализуете оба MTLJSONSerializing
а также MTLManagedObjectSerializing
протоколы на вашем MTLModel
подкласс вы сможете превратить NSDictionary
ответы от веб-API (предположительно, данные JSON) на объекты модели Core Data.
EasyMapping - я сам не использовал эту библиотеку, но, похоже, она предоставляет небольшое подмножество функциональных возможностей Mantle исключительно для преобразования между различными представлениями моделей, за исключением того, что она использует модели отображения (EKObjectMapping
) вместо создания подкласса класса базовой модели. Недостатки использования этой библиотеки состоят в том, что она не обрабатывает ни один из других образцов объектов Objective-C для вас, как это делает Mantle.
Я думаю, что из 3 упомянутых библиотек Mantle лучше всего подойдет для того, что вы описали. Другой вариант - использовать RestKit, который обеспечивает более тесную интеграцию REST API/Core Data, чем любая из этих библиотек, но значительно сложнее в использовании и отладке.
Если вам нужна тесная интеграция Core Data, вам следует взглянуть на RestKit ( http://restkit.org/). Если нет - я предлагаю EasyMapping. Это очень легко и достаточно мощный почти для всех ситуаций. Также не требуется создавать подклассы ваших классов из базового класса (например, MTLModel в Mantle).