2010-12-01 36 views
6

我希望有人能夠幫助我理解作爲類成員使用塊的語法。我有一些代碼,實際上工作得很好:iOS 4 - 將塊作爲類的成員使用

@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

回答

7

我自己也問一個問題你沿着這裏的線路:Block references as instance vars in Objective-C

見我的答案herehere

+0

啊!我不能在不使用typedef的情況下使用它,因爲我沒有意識到定義iVar的語法會完全不同。我想我還是必須有[typename] [iVarName]; – GendoIkari 2010-12-01 15:51:56