Как передать перечисление методу в подклассе (из ViewController)? - PullRequest
2 голосов
/ 19 января 2011

My SomeClass.h

typedef enum thing {stuff, foo, bar, etc} thing;

@interface SomeClass : UIView {
    NSNumber *aNumber;
    thing aThing;
}

My SomethingViewController.m

-(void)doSomething:(NSNumber *)n
         withThing:(id)t
{
    SomeClass *class = [[SomeClass alloc] initWithFrame:aRect];
    [class setAThing:(thing)t];
    [class setANumber:n];
}

-(void)viewDidLoad
{

[self doSomething:[NSNumber numberWithInt:2] withThing:foo];

Это работает нормально, кроме предупреждения о withThing: создание указателя из целого числа безактерский состав.

Наверное, мой вопрос: правильно ли я делаю?Есть ли другой способ, который не даст мне это предупреждение?

Ответы [ 2 ]

3 голосов
/ 19 января 2011

Да, есть другой способ. В перечислении все ваши «вещи» связаны с целым числом. Так что если вы измените id в вашем методе на thing или int, он должен работать без предупреждения. Это способ, которым я делаю это все время. ; -)

3 голосов
/ 19 января 2011

Вы можете использовать имя перечисления вместо id в аргументе withThing :. Тогда вы можете удалить бросок из т.

Кроме того, я рекомендую использовать прописные имена для перечислений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...