В большинстве случаев Xcode не приводит нас к той строке, где возникает эта проблема. При сбое приложения вы не увидите строку кода, вызвавшую это, скорее вы попадете в класс делегата приложения, с выводом ошибки примерно следующим образом:

[UITableViewCellContentView image]: unrecognized selector sent to instance
or 
[__NSDictionaryI objectAtIndex:] unrecognized selector sent to instance
or
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TestApp.MyViewController viewDidLoad:]: unrecognized selector sent to instance 0xDABCDD'

Как найти строку кода, вызывающую это:

Перейдите в навигатор точек останова. Щелкните опцию «+». щелкните «Exception Breakpoint». Появится новый виджет, подобный следующему.

Добавьте следующий блок условия:

-[NSObject(NSObject) doesNotRecognizeSelector:]

* вы также можете установить точку останова для всех исключений.

Теперь снова запустите свой код. на этот раз точка останова сработает при возникновении этого исключения.

Устраните проблему:

  • Проверьте, вызывается ли селектор на правом объекте. проверьте, не забыли ли вы установить цель при установке селектора.
[self addTarget:self action:@selector(clickedOnElement) forControlEvents:UIControlEventTouchUpInside];
  • Проверьте имя функции на наличие опечатки.
  • Проверьте параметры функции, распечатав их, как показано ниже, на предмет несоответствия подписи:
Swift:
print(#function)
Obj:
NSLog(@"%s", __PRETTY_FUNCTION__)