seniorObjective-C
How does Objective-C handle unrecognized selector crash internally?
Updated May 17, 2026
Short answer
Runtime throws NSInvalidArgumentException when no forwarding path resolves a selector.
Deep explanation
After failing method resolution and forwarding, runtime calls doesNotRecognizeSelector:, which raises an exception. This leads to EXC_BAD_ACCESS or SIGABRT depending on handling. It is one of the most common Objective-C crashes.
Unlock with a Pro subscription to view this section.
View pricingReal-world example
No real-world example available yet.
Unlock with a Pro subscription to view this section.
Upgrade to ProCommon mistakes
No common mistakes listed yet.
Unlock with a Pro subscription to view this section.
Upgrade to ProFollow-up questions
No follow-up questions available yet.
Unlock with a Pro subscription to view this section.
Upgrade to Pro