Метод не найден, предупреждение компилятора - PullRequest
3 голосов
/ 24 мая 2010

Я создаю класс из строки, проверяю его действительность и затем проверяю, отвечает ли он определенному методу. Если это так, то я вызываю метод. Все работает нормально, за исключением того, что я получаю раздражающее предупреждение компилятора: «warning: no '-setCurrentID:' method found». Я что-то здесь не так делаю? Можно ли сказать компилятору, что все в порядке, и перестать сообщать о предупреждении?

Вот код:

// Create an instance of the class
id viewController = [[NSClassFromString(class) alloc] init];

// Check the class supports the methods to set the row and section
if ([viewController respondsToSelector:@selector(setCurrentID:)]) 
    {
        [viewController setCurrentID:itemID];
    }   

// Push the view controller onto the tab bar stack      
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];

Приветствия

Dave

1 Ответ

7 голосов
/ 24 мая 2010

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

@interface NSObject (MyInformalProtocol)

- (void)setCurrentID:(int)id;

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