¿Dónde crear y cómo usar Enum en iOS?

Comencé a aprender el desarrollo de iOS.

Quiero usar enum en mi proyecto de ejemplo.

He declarado enum en sample.h como en el siguiente. Espero haber declarado esto correctamente.

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

Quiero usar esto en viewController.m . En viewController.h, he importado sample.h .

Quiero usar enum con el nombre como "days.sa" . Pero se buscó más código en google, dijeron que como crear una variable de instancia en "sample.h" como

 @interface Sample:NSObject { days d; } 

Si quiero usar esto significa que necesito crear y usar una instancia. Pero no quiero eso.

Necesito usar como

 days.d or days.sa or days.th 

¿Cómo hacer eso?, Esto debe usarse para todo el proyecto y

¿Cómo crear enumeración como variable de class en lugar de variable de instancia?

En la enumeración que ha creado, s , m , etc., ahora están disponibles globalmente (es decir, todo lo que importa sample.h ). Si desea que el integer correspondiente al sábado, por ejemplo, sea solo sa , no days.sa Creo que estás confundiendo enums con estructuras.

Por esta razón, es mejor usar más nombres detallados en su enumeración. Algo como:

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

por ejemplo, WeekdayMonday ahora es solo otra forma de escribir 2 en su aplicación, pero hará que su código sea más legible y pnetworkingefine los posibles valores legales para una variable de tipo Weekday .

Lo anterior está bien, pero para un mejor soporte del comstackdor y para garantizar el tamaño de un Weekday de Weekday , recomiendo usar NS_ENUM :

 typedef NS_ENUM(NSInteger, Weekday) { WeekdaySunday = 1, WeekdayMonday, WeekdayTuesday, WeekdayWednesday, WeekdayThursday, WeekdayFriday, WeekdaySaturday }; 

hey usas enum así como este es un ejemplo

En .h define enumeración

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

En .m play con enum element como este

 days d1 =f; switch (d1) { case m: case t: NSLog(@"You like Tuesday"); break; case w: case th: break; case f: NSLog(@"You like friday"); break; case sa: NSLog(@"You satunetworkingay"); break; case s: NSLog(@"You like sunday"); break; default: break; } 

Si quieres get más información, haz clic en esto.

 #import <Foundation/Foundation.h> typedef enum{ s=1,m,t,w,th,f,sa } days; @interface weekday : NSObject @property (nonatomic, assign) days day; @end @implementation weekday @end int main(int argc, const char * argv[]) { @autoreleasepool { weekday *sunDay=[[weekday alloc]init]; sunDay.day=s; NSLog(@"Today is %d",sunDay.day); } return 0; } 

Crear Enum en Enumrations.h

 typedef enum { Atype = 1, Btype, Ctype, Dtype, Etype, }type; 

Donde quiera que desee usar esta enumeración, simplemente importe Enumrations.h, y puede usar Atype sin crear un object de tipo.

simplemente puede usar NSLog(@"%@",@(Atype)) .