'id', который указывает на некоторый класс или любой подкласс - PullRequest
0 голосов
/ 15 ноября 2010

поэтому в Objective-C у меня может быть ссылка на объект, который реализует определенный протокол, например:

id<MyAwesomeProtocol> object;

У меня может быть ссылка на некоторый класс, например:

MyAwesomeClass *object;

Мне было интересно, что мне делать, чтобы иметь ссылку на MyAwesomeClass или любой другой подкласс.

Конечно, я мог бы просто использовать id, но я хотел бы знать, есть ли лучший способ.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 15 ноября 2010

Чтобы иметь ссылку на объект вашего класса или его подклассов, вы все равно можете написать

MyAwesomeClass *object;
1 голос
/ 15 ноября 2010

В общем случае лучше использовать NSObject* вместо id. Все объекты класса C являются потомками для NSObject, так почему же игнорировать все вкусности NSObject?

Если вы имеете дело с MyAwesomeClass или подклассами, я бы использовал MyAwesomeClass * object. Если вы просто используете методы протокола (в контексте протокола), я бы использовал NSObject <MyAwesomeProtocol> *object.

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