2010-07-06 84 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 2010-07-07 04:37:06

0

ID实际是指向的对象。

+0

指针指针没有任何错误。编译器不会不喜欢它们。它们是完全有效的,与指向对象的指针不同。 – Chuck 2010-07-06 06:03:02