2010-07-06 3 views
1

Только что понял, что делегаты, которых я объявляю, не объявлены с типом указателя.Объявление делегата

так что вместо этого

id <AddViewControllerDelegate> *delegate; 

У меня есть этот

id <AddViewControllerDelegate> delegate; 

Почему последний путь является правильным? Поскольку self является указателем (я думаю), то почему делегат не является?

ответ

2

'id' уже является типом указателя. Это просто скрыто за typedef.

typedef id   (*IMP)(id, SEL, ...); 
typedef struct objc_class *Class; 
typedef struct objc_object { 
    Class isa; 
} *id; 
+0

Где находятся эти файлы заголовков? – Pablo

0

ID на самом деле является указателем на объект.

+0

С указателем на указатель нет ничего плохого. Компилятор им не нравится. Они совершенно правильны, это не то же самое, что указатель на объект. – Chuck

Смежные вопросы