Как остановить предупреждение о том, что UIView может не реагировать на селектор

У меня есть класс, имеющий свойство UIView. Иногда я передаю UILabel; иногда UITextField. Независимо от того, что я передаю, я хочу, чтобы класс установил текст. В настоящее время я делаю это, и это работает:

if ([self.viewToUpdate respondsToSelector:@selector(setText:)] && !self.newAnswer)
    [self.viewToUpdate setText:[[self.choices objectAtIndex:indexPath.row] text]];

Проблема в том, что это дает предупреждение, потому что, хотя я проверяю RespondsToSelector , Xcode не знает, что мой UIView ответит на setText: . Как мне удалить это предупреждение?

Я знаю, что могу специально проверить, есть ли оно? sa TextField или Label, а затем приведение к TextField или Label, соответственно, но это будет проблемой, и если у меня когда-либо будет больше типов представлений, мне придется добавить еще несколько строк кода для каждого из них .

Я подумал о создании своего собственного протокола, а затем, чтобы мой класс имел id в качестве типа для viewToUpdate ... но, конечно, UITextField и UILabel не соответствовали бы этому протоколу ...

9
задан GendoIkari 2 December 2010 в 22:57
поделиться