2010-12-01 13 views
6

Birinin bir sınıfın üyeleri olarak kullanıldığında blokların sözdizimini anlamama yardımcı olabileceğini umuyorum. Aslında sadece düzgün şekilde çalışıyorsa bazı kodlar vardır:iOS 4 - Bir sınıfın üyesi olarak blokları kullanma

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

@interface StructureListDelegate : NRFCTableDelegate 
{ 
    StructureDeleteCallback _structureDeleteCallback; 
} 

@property (nonatomic, copy) StructureDeleteCallback structureDeleteCallback; 

@end 

Bu çalışır, ancak ben typedef ifadesinin sözdizimi anlamak istiyorum; ve aslında typedef kullanmak için gerekli olup olmadığı.

Okuduğum şey, bu durumda typedef kullanılmasının kodun daha açık olmasını sağladığından tavsiye edilir; ancak typedef olmadan bunu yapmaya çalışırken derlemeyi başaramadım.

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

Mesela:

typedef double CLLocationDegrees; 

Ama typedef cümlenin sözdizimi uymuyor typedef Benim anlayışım sözdizimi temelde olmasıydı. Yani benim sorular şunlardır:

  • nasıl typedef ifadesinin sözdizimi diğer typedef açıklamalarından çok farklı olabilir/Aslında kullanıyorum sözdizimi derleyici ne anlama geliyor?
  • ürününün sınıfının bir üyesi olarak typedef kullanmadan bir bloğu var mı? kendimi burada senin çizgisinde bir soru sordum ben

cevap

7
+0

Ah! Ben typedef kullanmadan işe almak mümkün değildi çünkü iVar tanımlamak için sözdizimi tamamen farklı olacağını farketmedim. Ben hala [typename] [iVarName]; – GendoIkari

+0

Sadece son bir şeyi açıklığa kavuşturmak için ... yazımın içinde mi yoksa sadece bir blok ilan mı olsun, temel olarak sadece bu blokların onları diğer türlere göre bildirmek için farklı bir sözdizimi var mı? Derleyici sadece^sembolünü görür ve değişkenin isminin,^x'den sonra olduğu gibi türün isminden farklı olarak^sonra olduğunu bilir; Teşekkürler! – GendoIkari

+0

@Gendolkari Anladın! :) –

İlgili konular