Подтвердить что ты не робот

Где создавать и как использовать Enum в iOS?

Я начал изучать разработку iOS.

Я хочу использовать enum в моем примере проекта.

Я объявил enum в sample.h, как показано ниже. Надеюсь, я это правильно сказал.

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

Я хочу использовать это в viewController.m. В viewController.h, я импортировал sample.h.

Я хочу использовать перечисление с именем типа "days.sa". Но больше кода я искал в google, они сказали, как создать переменную экземпляра в "sample.h", например

@interface Sample:NSObject
{
    days d;
}

Если я хочу использовать это средство, мне нужно создать и использовать экземпляр. Но я не хочу этого.

Мне нужно использовать как

days.d or days.sa or days.th

Как это сделать? Это необходимо использовать для всего проекта и

Как создать перечисление как переменную класса вместо переменной экземпляра?

4b9b3361

Ответ 1

В появившемся перечислении s, m и т.д. теперь доступны глобально (т.е. на все, что импортирует sample.h). Если вы хотите, чтобы целое число, соответствующее субботе, например, это просто sa, а не days.sa. Я думаю, вы вводите в заблуждение перечисления со структурами.

По этой причине лучше использовать более подробные имена в вашем перечислении. Что-то вроде:

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

т.е. WeekdayMonday теперь представляет собой еще один способ записи 2 в ваше приложение, но сделает ваш код более читаемым и предварительно определит возможные допустимые значения для переменной типа Weekday.

Вышеуказанное прекрасно, но для лучшей поддержки компилятора и для обеспечения размера Weekday я бы рекомендовал использовать NS_ENUM:

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

Ответ 2

Эй, вы используете enum, как это, вот пример

В .h определите enum

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

В игре .m с элементом перечисления, подобным этому

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 satureday");
            break;
        case s:
            NSLog(@"You like sunday");
            break;
        default:
            break;
    }

если вы хотите узнать больше нажмите this.

Ответ 3

#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;
}

Ответ 4

Создание Enum в Enumrations.h

typedef enum  
{  
    Atype = 1,  
    Btype,  
    Ctype,
    Dtype,  
    Etype,  

}type;

Где бы вы ни захотели, чтобы это перечисление просто импортировало Enumrations.h, и вы можете использовать Atype без создания объекта типа.

вы можете просто использовать NSLog(@"%@",@(Atype)).