Я дам расширенный ответ. Ваш код будет намного более читабельным, если вы будете следовать стандартным соглашениям об именах obj-c.
Как правило, вы должны принять для своего перечисления обычную схему именования, используя имя класса, за которым следует соответствующее имя типа, например:
typedef enum {
CardSuitClubs,
CardSuitDiamonds,
CardSuitHearts,
CardSuitSpades
} CardSuit;
typedef enum {
CardValueTwo,
...,
CardValueAce
} CardValue;
Затем вы включаете card.h
там, где вам это нужно, и используете свой инициализатор следующим образом:
Card *card = [[Card alloc] initWithCardValue:CardValueAce andCardSuit:CardSuitSpades];