отправитель currentTitle не распознается в Xcode - PullRequest
0 голосов
/ 18 февраля 2012

Я делаю что-то столь же простое, как получение текущего заголовка UIButton

-(IBAction)buttonPressed:(id)sender{
    NSString *someString = [sender currentTitle];
}

По какой-то причине Xcode путает sender с self, потому что полные опции только возвращают методы, принадлежащие "self"».Независимо от того, что я делаю, я получаю тот же

-(IBAction)buttonPressed:(id)sender{
    UIButton *btn = (UIButton *)sender;
    NSString *someString = [btn currentTitle];
}

Xcode, вылетает в строке NSString с "нераспознанным селектором, отправленным в btn".Я могу скопировать рабочий код из другого проекта, и то же самое происходит.Что может быть не так?

РЕШЕНИЕ

Перезапустил XCode и все заработало oO

Ответы [ 5 ]

1 голос
/ 18 февраля 2012

Я не думаю, что Xcode путает sender с self, происходит то, что Xcode ничего не знает о sender, поскольку он был объявлен как id, что означает, что Xcode знает только, что это объект. 1005 *

Предложения, которые вы получаете в XCode, вероятно, являются просто методами, которые есть у каждого объекта.

Вы должны убедиться, что sender - это то, что вы ожидаете, попробуйте сделать это и проверить, действительно ли это кнопка или что-то еще:

-(IBAction)buttonPressed:(id)sender{
    NSLog(@"Sender: %@", sender);
}
0 голосов
/ 24 мая 2013

Ваша проблема в том, что вы называете id, а не кнопку. Замените «id» на «UIButton» следующим образом ...

-(IBAction)buttonPressed:(UIButton *)sender{
    NSString *someString = sender.currentTitle;
}
0 голосов
/ 18 февраля 2012

Возможная причина для "нераспознанного селектора, отправленного в btn", - это когда вы вызываете метод, который фактически не был написан. Или вас могут назвать

[self buttonPressed];

вместо

[self buttonPressed:];
0 голосов
/ 18 февраля 2012

РЕШЕНИЕ

Перезапустил XCode и все заработало oO

0 голосов
/ 18 февраля 2012

Я думаю, что проблема в неправильном синтаксисе

Это

 sender.currentTitle;

OR

btn.currentTitle;

currentTitle является свойством, и нет функции с именем currentTitle, и, следовательно, вы получаете ошибку «нераспознанный селектор отправлен в btn».

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