Что произойдет, если в одном классе будет много категорий? - PullRequest
0 голосов
/ 14 декабря 2011

В Objective C, если у класса есть много категорий в одном приложении, мы определяем, какую категорию класса мы хотим при создании экземпляра?

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

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

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

0 голосов
/ 14 декабря 2011

Нет необходимости указывать, какую категорию класса вы хотите при создании экземпляра. Метод, который добавляет категория, становится частью класса. Например, если вы добавите метод в класс NSString, то при компиляции ожидается, что в его репертуаре будет экземпляр NSString.

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