Что значит создать объект, используя: id <class>instanceName? - PullRequest
4 голосов
/ 04 февраля 2011

Я видел некоторый код на веб-сайте Apple, который выглядит следующим образом

id <NSFetchedResultsSectionInfo> sectionInfo = ...

Как это отличается от следующего?

NSFetchedResultsSectionInfo *sectionInfo = ...

Меня не очень интересует само NSFetchedResultsSectionInfo, а точнее так, как это заявлено.

Спасибо большое!
Тристан

Ответы [ 2 ]

5 голосов
/ 04 февраля 2011

NSFetchedResultsSectionInfo - это протокол.id - это способ объявления универсального объекта, а id <NSFetchedResultsSectionInfo> объявляет универсальный объект, который должен соответствовать протоколу NSFetchedResultsSectionInfo.

3 голосов
/ 04 февраля 2011

Этот синтаксис используется для указания того, что объект, на который ссылаются, соответствует определенному протоколу. См. документацию Apple по этому аспекту Objective-C, в частности, раздел «Соответствие протоколу» и далее.

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