What are four uses of categories and what other construct can you replace each of them with (bonus: when should you replace them with those constructs)?
Explain the interior pointer problem, when it applies, and what you can do about it.
Describe what happens in objc_msgSend, and give two reasons why it's implemented in assembly rather than C.
How would you implement NSMutableSet?
Explain the proper uses of (__bridge), (__bridge_retained) and (__bridge_transfer) casts.
Explain all the important differences between direct ivar access and access through a property, under MRC and under ARC.
When should you use +/-conformsToProtocol: instead of +/-respondsToSelector:?
How would you implement toll-free bridging?