I'm reading through Mark Dalrymple's Learn Objective-C on the Mac (only at the chapter on Protocols, so still relatively newbish) and trying to figure something out:
Why would you ever reference a class by its own name? If I had a class called Foo, why would I ever want to write, say,
[[Foo alloc] init]
and not
[[[self class] alloc] init]
If I had a subclass Bar, wouldn't the first option invalidate me from writing
[[Bar alloc] init]
whereas the second option would allow it? When would the first option be better?