Помогите с предупреждением компилятора: Инициализация от отдельного типа Objective C, когда типы совпадают - PullRequest
2 голосов
/ 09 марта 2010

Вот функция, где я получаю предупреждение компилятора, я не могу понять, что его вызывает. Любая помощь приветствуется.

 -(void)displaySelector{
    //warning on the following line:
    InstanceSelectorViewController *controller = [[InstanceSelectorViewController alloc] initWithCreator:self];
    [self.navController pushViewController:controller animated:YES];
    [controller release];
}

Интерфейс и реализация для initWithCreator: метод

-(InstanceSelectorViewController*)initWithCreator:(InstanceCreator*)creator;


-(InstanceSelectorViewController*)initWithCreator:(InstanceCreator*)crt{
    if (self = [self initWithNibName:@"InstanceSelectorViewController" bundle:nil]) {
        creator = crt;
    }
    return self;
}

1 Ответ

1 голос
/ 09 марта 2010

Я предполагаю, что это не единственный класс в вашем проекте, который имеет метод initWithCreator:. В общем, плохая идея давать статические типы методам init. alloc возвращает id, поэтому компилятор не знает тип объекта, которому вы отправляете метод init. Если есть более одного выбора, он часто будет ошибаться, и вы получите предупреждение, которое видите.

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