Одноименные категории Objective-C

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

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

Пример. Скажем, у меня есть класс List и класс ListItem, и мне нужны категории для обоих. То, что я делаю сейчас, объявляю следующим образом:

В списке+дополнения.h

@interface List (Additions) ...

В ListItem+Addtions.h

@interface ListItem (Additions) ...

Это нормально? Я не могу сказать, стабильно ли он работает. Что считается названием категории? Это "Дополнения" или комбинация "ListItem+Additions".


person David    schedule 12.05.2012    source источник


Ответы (2)


Имена категорий List (Additions) и ListItem (Additions). Таким образом, две категории являются отдельными и независимыми.

Что-то вроде «ListItem+Additions» является общим соглашением для имен файлов, определяющих категории, но ни компилятор, ни среда выполнения не обращают на это внимания.

person Ken Thomases    schedule 12.05.2012
comment
Звездочка: компилятор замечает имя файла, как иначе мог бы работать макрос __FILE__? - person Richard J. Ross III; 08.06.2013
comment
Он знает имя файла, но не обращает на него никакого внимания. На нем не основываются никакие решения. (Кроме того, макрос __FILE__ заменяется препроцессором, а не компилятором.) - person Ken Thomases; 08.06.2013

Это нормально? Я не могу сказать, стабильно ли он работает. Что считается названием категории? Это "Дополнения" или комбинация "ListItem+Additions".

Да, это хорошо.

Обе категории имеют одинаковое имя: Additions, но одна из них относится к категории List, а другая — к категории ListItem. Так что нет конфликта имен. Это верно, даже если бы вы поместили оба объявления категорий в один и тот же файл.

person Sailesh    schedule 12.05.2012