Objective c iOS 4-将块用作类的成员

Objective c iOS 4-将块用作类的成员,objective-c,ios4,typedef,objective-c-blocks,Objective C,Ios4,Typedef,Objective C Blocks,我希望有人能帮助我理解作为类成员使用的块的语法。我有一些代码实际上运行得很好: @class Structure; typedef void (^StructureDeleteCallback)(Structure *); @interface StructureListDelegate : NRFCTableDelegate { StructureDeleteCallback _structureDeleteCallback; } @property (nonatomic, cop

我希望有人能帮助我理解作为类成员使用的块的语法。我有一些代码实际上运行得很好:

@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
    statements/我使用的语法对编译器实际意味着什么
  • 有可能吗 将块作为类的成员 不使用
    typedef

我自己也提出了一个与你类似的问题:


看看我的答案和答案。

啊!我无法在不使用typedef的情况下让它工作,因为我没有意识到定义iVar的语法会完全不同。我想我还得有[typename][iVarName];所以我想澄清最后一件事。。。无论是在typedef中,还是仅仅声明一个块,基本上只是块的声明语法与其他类型不同吗?编译器只看到^符号,知道变量的名称在^之后,而不是像int x;?谢谢我不得不离开一会儿。再次感谢!