Добавление пользовательских методов в основные классы данных - PullRequest
19 голосов
/ 24 декабря 2009

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

Например, скажем, у меня есть сущность «Персона» со свойствами «имя» и «фамилия». Я хочу добавить метод "полное имя", который возвращает объединение свойств имени и фамилии.

Я мог бы добавить метод к сгенерированным файлам .h и .m, но это было бы трудно поддерживать во время разработки, когда мои сущности все еще могут измениться. Воссоздание файлов .h и .m перезапишет эти изменения. Другая идея заключается в создании подкласса сгенерированного класса и добавлении туда методов.

Есть ли лучший способ?

Ответы [ 3 ]

40 голосов
/ 24 декабря 2009

Я считаю, что лучший способ добавить пользовательские методы, которые не связаны напрямую со свойствами данных, - это использовать категорию. Обычно это работает лучше всего, если вы создаете свои сущности Core Data как их собственные подклассы NSManagedObject в моделировщике данных, но это может работать и без этого. Таким образом, весь машинно-сгенерированный код может оставаться в основных файлах .h и .m, а весь ваш пользовательский код помещается в .h и .m для вашей категории в этом классе.

1 голос
/ 24 декабря 2009

Я бы рекомендовал добавить эти методы в ваш пользовательский подкласс NSManagedObject. Если вы беспокоитесь о поддержке аксессоров при изменении модели данных при сохранении пользовательских методов, я бы посоветовал обратиться к «Wolf» Rentzsch's mogenerator . Многие люди клянутся этим инструментом именно для этой цели.

0 голосов
/ 24 декабря 2009

Вы создаете свой собственный подкласс NSManagedObject для сущностей.

Лучше объяснено в документации NSManagedObject

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...