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 pricing

Real-world example

No real-world example available yet.

Unlock with a Pro subscription to view this section.

Upgrade to Pro

Common mistakes

No common mistakes listed yet.

Unlock with a Pro subscription to view this section.

Upgrade to Pro

Follow-up questions

No follow-up questions available yet.

Unlock with a Pro subscription to view this section.

Upgrade to Pro

More Objective-C interview questions

View all →