В Objective C, есть ли способ вызвать ссылку на перечисление typdef из другого класса? - PullRequest
1 голос
/ 13 мая 2010

Насколько я понимаю, перечисления typedef имеют глобальную область, но если я создал перечисление вне @interface в RandomViewController.h, я не могу понять, как получить к нему доступ из OtherViewController.m. Есть ли способ сделать это?

Итак ... "RandomViewController.h"

#import <UIKit/UIKit.h>

typedef enum {
 EnumOne,
 EnumTwo
}EnumType;

@interface RandomViewController : UIViewController { }

а потом ... "OtherViewController.m"

-(void) checkArray{
      BOOL inArray = [randomViewController checkArray:(EnumType)EnumOne];
}

Ответы [ 2 ]

2 голосов
/ 13 мая 2010

В OtherViewController.m:

#import "RandomViewController.h"

И вы не должны называть свою переменную как тип. Скорее назовите это myEnumOne, или как вам нравится :)

BOOL inArray = [randomViewController checkArray:(EnumType)myEnumOne];

Можете ли вы показать нам объявление метода checkArray? В моем понимании это должно быть

- (BOOL)checkArray:(EnumType)blabla;

Вам не нужно указывать аргумент в EnumType при вызове метода (я предполагаю, что он уже имеет тип EnumType).

1 голос
/ 13 мая 2010

Просто импортируйте заголовок.

...