Предупреждения компилятора о методах, не найденных или не объявленных - PullRequest
0 голосов
/ 21 декабря 2011

Я начал использовать (ARC) с iOS 5, но у меня часто возникает проблема.

Первый случай:

[[cell viewWithTag:999] setTextColor:[UIColor blackColor]];

эта строка вызывает проблему:

Тип получателя 'UIView' для сообщения экземпляра не объявляет метод с селектором 'setTextColor:'.

Второй случай:

[delegate setForTheFirstTime:TRUE];

эта строка вызывает проблему:

Нет известного метода экземпляра для селектора 'setForTheFirstTime:'.

У меня много таких проблем, когда я использую делегата.

Чтобы исправить эти две проблемы, я должен использовать метод, подобный performSelector:?

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

Вам просто нужно объявить 'делегат' как правильный тип, что потребует от вас импортировать заголовок этого типа.Компилятор должен знать, что ваш объект-делегат понимает 'setForTheFirstTime:', а компилятору нужно объявление для этого метода.

В первом случае с viewWithTag: необходимо преобразовать результат в правильный класс, чтобыКомпилятор может знать об этом методе setTextColor:

Предполагая, что это представление UILabel:

[(UILabel*)[cell viewWithTag:999] setTextColor:[UIColor blackColor]];

0 голосов
/ 22 декабря 2011

Метод viewWithTag возвращает объект UIView.Поэтому, когда вы вызываете метод setTextColor, получатель является UIView, и для UIView нет метода setTextColor.Вы должны привести свой объект к правильному классу.Здесь вы хотите UILabel.

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