Использование категорий в цели C

У меня есть файл с именем ViewMessages.m который становится довольно многословным. Я хотел бы провести рефакторинг и поместить часть моих методов в отдельный файл. Кажется, что Категории являются правильным путем, поэтому я создал Category на ViewMessages называется DataEngineViewMessages

Он создал 2 файла, DataEngineViewMessages.h а также DataEngineViewMessages.m

Мой вопрос: нужно ли мне #import "DataEngineViewMessage.h" в моем оригинале ViewMessage.h или же .m чтобы получить доступ к моим новым методам?

2 ответа

Решение

Не в.h файл. Заголовок категории должен импортировать ViewMessages.hи, если требуется, заголовок категории должен быть импортирован в ViewMessages.m, Это предотвращает любой вид округлости.

Обычно вы хотите различать методы категорий, которые должны быть публичными (определенные в заголовке, например, ViewMessages+DataEngine.h) и методы категории для внутреннего использования (определенные в заголовке, возможно, как ViewMessages+Private.h). Первое не должно быть включено ViewMessages и последний должен (опять же, в файле.m).

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

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

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