iOS 4 - 使用块作为类的成员

时间:2010-12-01 15:36:08

标签: objective-c ios4 typedef objective-c-blocks

我希望有人可以帮助我理解用作类成员时块的语法。我有一些实际工作正常的代码:

@class Structure;
typedef void (^StructureDeleteCallback)(Structure *);

@interface StructureListDelegate : NRFCTableDelegate
{
    StructureDeleteCallback _structureDeleteCallback;
}

@property (nonatomic, copy) StructureDeleteCallback structureDeleteCallback;

@end

这有效,但我想理解typedef语句的语法;以及它是否真的需要使用typedef。

我读到的内容是建议在这种情况下使用typedef,因为它使代码更加清晰;但是在没有typedef的情况下尝试这样做时,我一直无法进行编译。我对typedef的理解是语法基本上是:

typedef [actual type] [new name for type];

如:

typedef double CLLocationDegrees;

但我的typedef语句的语法与此不匹配。所以我的问题是:

  • typedef的语法怎么样? 陈述与其他陈述如此不同 typedef语句/我使用的语法对编译器意味着什么?
  • 是否有可能 有一个块作为一个类的成员 不使用typedef

1 个答案:

答案 0 :(得分:7)

我自己在这里问过你的问题:Block references as instance vars in Objective-C

查看我的回答herehere