2011-11-17 90 views
2

說裏面一類Card,你已經宣佈如何使用枚舉類型?

typedef enum { 
    CLUBS, DIAMONDS, HEARTS, SPADES 
} Suit 

typedef enum { 
    SIX, SEVEN, EIGHT .. 
} Value 

和指定初始化

-(id) initWithValue: (Value) c andSuit: (Suit) s; 

你將如何再使用這個初始化從一個外類?

我想:

[Card alloc] initWithValue: (Card) Value.SIX andSuit: (Card) Suit.HEARTS]; 

請協助

回答

6
Card *card = [[Card alloc] initWithValue: SIX andSuit: HEARTS]; 
+0

當然! Cпасибо! – JAM

+0

不客氣。 Незачто) – beryllium

1

就在:

[[Card alloc] initWithValue:SIX andSuit:HEARTS]; 
5

我給擴展答案。如果您遵循標準的obj-c命名約定,您的代碼將更具可讀性。

typedef enum { 
    CardSuitClubs, 
    CardSuitDiamonds, 
    CardSuitHearts, 
    CardSuitSpades 
} CardSuit; 

typedef enum { 
    CardValueTwo, 
    ..., 
    CardValueAce 
} CardValue; 

然後,包括card.h在你需要它,用你的初始化爲:

一般情況下,你會使用你的類名,後跟一個相關類型的名稱,如採用傳統的命名方案,枚舉如下:

Card *card = [[Card alloc] initWithCardValue:CardValueAce andCardSuit:CardSuitSpades];