Лучшая библиотека для отображения основных данных

Как разработчик я сталкиваюсь с обработкой данных каждый день. Обычное дело, что мне нужно обработать необработанные данные для объекта (NSManagedObject). Поэтому я использую AFNetworking для получения данных с удаленного сервера, и в результате работы AFNetworking у меня есть данные, которые могут быть представлены NSDictionary. Поэтому главное, что может занять много работы, - это преобразование этих необработанных данных в конкретные модели данных. Поэтому в Интернете есть много библиотек, которые могут выполнить эту тяжелую работу за нас:

MagicalRecord MagicalImport

накидка

EasyMapping

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

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).

Другие вопросы по тегам