Можно ли уменьшить код котельной плиты для быстрого кодируемого протокола - PullRequest
0 голосов
/ 08 мая 2019

Codable великолепен, это единственное решение для синтаксического анализа json, позволяющее сериализовать ваши модели NSMangedObject и обратно в словарь и данные JSON соответственно.

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

Есть ли способ уменьшить код котельной плиты. Я попробовал Mirror api, чтобы вывести все ключи свойств и их типы для динамической генерации методов кодирования и декодирования для кодируемого протокола для любого класса, который его реализует. Но Mirror api не является достаточно мощным, так как иногда не может дать правильный тип класса и вообще не содержит информацию о типах NSManagedObject.

Поскольку codable является такой неотъемлемой частью обычного быстрого использования, мне интересно, можно ли что-то сделать, чтобы свести к коду котельной плиты.

1 Ответ

0 голосов
/ 09 мая 2019

В NSManagedObject классах расширения Codable синтезированного протокола не могут быть использованы.

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

...