据说最初的设计是完全借鉴Smalltalk语法来的。而传说那个时候已经有allocFromZone:这个方法,但是这个方法需要传个参数id myCompanion = [[TheClass allocFromZone:[self zone]] init]; 这个方法像下面这样: + allocFromZone:(void *) z { return(*_zoneAlloc)((Class)self, 0, z); } 后来简化为下面这个: ...