Означает ли ARC, что я должен объявлять статические типы, а не id? - PullRequest
2 голосов
/ 05 июля 2011

Документ ARC общедоступен на сайте LLVM, поэтому NDA здесь не является проблемой.

Я обнаружил, что при подготовке своего кода для ARC я использую (NSObject *) во многих ситуациях, в которых я ранее использовал (id).

Например, если бы я писал метод initWithParent:, это могло бы быть

-(id) initWithParent: (NSObject*) parent;

где бы я раньше писал

-(id) initWithParent: (id) parent;

Мой вопрос - имеет ли эта практика смысл?

Ответы [ 2 ]

2 голосов
/ 05 июля 2011

Я считаю, что это будет работать в большинстве случаев, по крайней мере, если ваш объект является производным от NSObject (что не совсем все работает). Вот интересное сообщение в блоге на эту тему (независимо от ARC).

1 голос
/ 05 июля 2011

Я ни в коем случае не эксперт, но похоже, что он может столкнуться с проблемами, если сообщение пропустит что-то, что не является объектом (int, struct и т. Д.).

Кроме этого, этоинтересный способ обойти вещи.

...