NSManagedObjects с категориями - PullRequest
       19

NSManagedObjects с категориями

2 голосов
/ 15 февраля 2012

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

1 Ответ

3 голосов
/ 15 февраля 2012

Проблема с переопределением метода в категории заключается в том, что вы не можете вызвать исходную реализацию, как обычно, используя [super doSomething].Обычно, когда вы переопределяете метод, вы все равно хотите иметь возможность вызывать исходную реализацию, делая что-то дополнительное до и / или после выполнения исходной реализации.

Одно достаточно чистое решение - позволить Xcode генерировать подклассы NSManagedObject.что вы не прикасаетесь напрямую.Вместо этого создайте другой, собственный подкласс каждого сгенерированного Xcode подкласса NSManagedObject, который вы можете редактировать, не беспокоясь о его перезаписи.

Вольф Рентшен mogenerator по существу использует этот подход и дополнительно генерирует некоторые удобные удобные методы, которые Xcode не генерирует.Возможно, стоит проверить, потому что это может быть полезным инструментом, но mogenerator не обязательно делать то, что вы пытаетесь сделать.

...