在Objective-C中创建并使用Enum

Iva*_* Li 2 xcode enums objective-c ios

我目前正在Objective-C中为iOS开发一款扑克游戏,但我在使用遇到了问题.我想创建一个enum名为"Suit"并在我的Card类中使用它,因为每张卡片都有它的套牌和套装,如"Ace Spade".

我在哪里定义我的enum

typedef enum Suit {
    Diamond,
    Club,
    Heart,
    Spade
}
Run Code Online (Sandbox Code Playgroud)

此外,什么类型的类的,我应该定义套装enum中(例如.NSObject,UIView等)?并且,在导入Suit.hCard.h,我可以直接将其定义为属性Card.h吗?

我对Objective-C不太熟悉,所以对任何帮助表示赞赏.

Quu*_*one 7

typedef enum {
    Clubs, Diamonds, Hearts, Spades
} Suit;

typedef int Value;

struct Card {
    Suit suit;
    Value value;
};
Run Code Online (Sandbox Code Playgroud)

或者,如果你真的认为Card需要成为一个重量级的话,那么

@interface Card : NSObject
@property Suit suit;
@property Value value;
@end
Run Code Online (Sandbox Code Playgroud)

  • 您还可以使用`NS_ENUM`宏来更清晰地键入您的枚举.查看UIKit头文件,例如`UIView.h` - 他们将它用于所有UIView枚举. (3认同)