Warum wird [ClassName alloc] anstelle von [[self class] alloc] verwendet?
Ich lese durch Mark Dalrymples Objective-C auf dem Mac lernen (nur im Kapitel über Protokolle, also noch relativ neu) und versuchen, etwas herauszufinden:
Warum würden Sie jemals eine Klasse mit ihrem eigenen Namen referenzieren? Wenn ich eine Klasse namens @ hätFoo
, warum sollte ich jemals schreiben wollen, sagen,
[[Foo alloc] init]
und nich
[[[self class] alloc] init]
Wenn ich eine Unterklassen-Leiste hätte, würde mich die erste Option nicht daran hindern, @ zu schreibe
[[Bar alloc] init]
Warum würde die zweite Option es erlauben? Wann wäre die erste Option besser?