代码之家  ›  专栏  ›  技术社区  ›  Pablo

声明委托

  •  1
  • Pablo  · 技术社区  · 14 年前

    刚刚意识到我声明的委托不是用指针类型声明的。

    所以不是这个

    id <AddViewControllerDelegate> *delegate;
    

    我有这个

    id <AddViewControllerDelegate> delegate;
    

    为什么最后一种方法是正确的?自从 self 指针是(我猜)那么为什么委托不是?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Joshua Weinberg    14 年前

    “id”已经是指针类型。它只是隐藏在typedef后面。

    typedef id          (*IMP)(id, SEL, ...); 
    typedef struct objc_class *Class;
    typedef struct objc_object {
        Class isa;
    } *id;
    
        2
  •  0
  •   Conceited Code    14 年前

    ID实际上是指向对象的指针。