In Objective-C, what\'s the difference between declaring a variable id versus declaring it NSObject *?
id
NSObject *
From my limited understanding of Objective-C, not all objects are derived from NSObject (unlike Java where all objects derive from Object). You can theoretically have other root objects. id could apply to any of those non-NSObject derived objects.