在iOS中如何创建和使用Enum?

我已经开始学习iOS开发.

我想在我的示例项目中使用枚举.

我已经在sample.h中声明了枚举,如下所示.我希望我已经正确地宣布了.

typedef enum{s=1,m,t,w,th,f,sa} days;

我想在viewController.m中使用这个.在viewController.h中,我导入了sample.h.

我想使用名为“days.sa”的枚举.但是我在谷歌搜索的更多代码,他们说像在“sample.h”中创建一个实例变量

@interface Sample:NSObject
{
    days d;
}

如果我想使用这种方式,我需要创建和使用实例.但我不想这样.

我需要使用像

days.d or days.sa or days.th

如何做到这一点,这个必须用于整个项目和

如何创建枚举作为类变量而不是实例变量?

解决方法

在你创建的枚举中,s,m等现在全球可用(即导入sample.h的任何东西).例如,如果你想要对应于星期六的整数,它只是sa,而不是days.sa.我觉得你是混乱的枚举与结构.

因此,最好在您的枚举中使用更详细的名称.就像是:

typedef enum
{
    WeekdaySunday = 1,WeekdayMonday,WeekdayTuesday,WeekdayWednesday,WeekdayThursday,WeekdayFriday,WeekdaySaturday
} Weekday;

所以例如WeekdayMonday现在只是在您的应用程序中写入2的另一种方法,但会使您的代码更易于阅读,并为“Weekday”类型的变量预先定义可能的合法值.

以上是好的,但为了更好的编译器支持,并确保一个平日的大小,我建议使用NS_ENUM:

typedef NS_ENUM(NSInteger,Weekday)
{
    WeekdaySunday = 1,WeekdaySaturday
};

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...