在课堂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];
请协助
答案 0 :(得分:6)
Card *card = [[Card alloc] initWithValue: SIX andSuit: HEARTS];
答案 1 :(得分: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];
答案 2 :(得分:1)
就是这样:
[[Card alloc] initWithValue:SIX andSuit:HEARTS];