Использование категорий в цели 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
для методов вашей категории в нижней части файла заголовка основного класса.