Цель-C: где и как я должен объявлять перечисления? - PullRequest
9 голосов
/ 02 августа 2011

Добрый день, друзья. Я новичок в Objective-C. Я хочу использовать enum в своем классе и сделать его публичным. Я понимаю, как объявлять перечисления (/1392990/ispolzovanie-enum-v-objective-c),, но не понимаю, где мне их объявлять.

Я пробовал:

@interface MyFirstClass : NSObject {
typedef enum myTypes {VALUE_A, VALUE_B, VALUE_C} MyTypes;
}

или

@interface MyFirstClass : NSObject {
@public
   typedef enum myTypes {VALUE_A, VALUE_B, VALUE_C} MyTypes;
}

Но компилятор выдает ошибку: «ожидаемый список спецификаторов-спецификаторов перед typedef».

Что не так?

Ответы [ 3 ]

11 голосов
/ 02 августа 2011

.h

typedef enum myTypes {VALUE_A, VALUE_B, VALUE_C} MyTypes;

@interface MyFirstClass : NSObject {

 MyTypes type;

 }

.m файл

   type=VALUE_A;
7 голосов
/ 02 августа 2011

Вне декларации @interface.

typedef enum myTypes {VALUE_A, VALUE_B, VALUE_C} MyTypes;

@interface MyFirstClass : NSObject {
}

@end
3 голосов
/ 18 мая 2015

Вы можете создать файл заголовка (* .h) и выполнить следующее, чтобы соответствовать вашей переменной enum.

//  EnumConstants.h


#ifndef EnumConstants_h
#define EnumConstants_h

typedef enum {
    VEHICLE,
    USERNAME
} EDIT_TYPE;

typedef enum {
    HIGH_FLOW,
    STANDARD_FLOW
} FLOW_TYPE;


#endif

Использование:

#import "EnumConstants.h"

UISwitch *onOffSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(self.tableview.frame.size.width-75, 26, 0, 0)];
onOffSwitch.tag =STANDARD_FLOW;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...