12
We know that in Objective-C there are two main root classes: NSObject and NSProxy. There are other roots (mainly for private and legacy purposes) like Object, and NSLeafProxy.
Defining a new root is fairly trivial:
@interface DDRoot <NSObject>
@end
@implementation DDRoot
// implement the methods required by <NSObject>
@end
My question is: why would you ever want to define a new root class? Is there some use-case where it's necessary?