2010-07-06 4 views
1

Je viens de réaliser que les délégués que je déclare ne sont pas déclarés avec le type de pointeur.Déclarer un délégué

donc au lieu de ce

id <AddViewControllerDelegate> *delegate; 

Je possède ce

id <AddViewControllerDelegate> delegate; 

Pourquoi la dernière façon est correcte? Depuis self est pointeur (je suppose) alors pourquoi déléguer n'est pas?

Répondre

2

'id' est déjà un type de pointeur. C'est juste caché derrière le typedef.

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

Où se trouvent ces fichiers d'en-tête? – Pablo

0

id est en fait un pointeur vers un objet.

+0

Il n'y a rien de mal avec un pointeur sur un pointeur. Le compilateur ne les aime pas. Ils sont parfaitement valides, mais pas la même chose qu'un pointeur sur un objet. – Chuck

Questions connexes