使用[self class]的重点是什么
|
此代码正确吗?
@implementation Vehicle
+(id) vehicleWithColor:(NSColor*)color {
id newInstance = [[[self class] alloc] init]; // PERFECT, the class is // dynamically identified
[newInstance setColor:color];
return [newInstance autorelease];
}
@end
为什么要使用[自类]
我认为self已经指向静态方法的类(带有+的类)
没有找到相关结果
已邀请:
2 个回复
脖呐
臂哦
中所示),那么Vehicle的子类将必须重写+ vehicleWithColor:使其正确执行操作。使用
,您可以创建子类HarleyDavidson,而
将自动执行正确的操作,从而创建HarleyDavidson实例而不是Vehicle实例。 (编辑:) 有关类方法中的
与
的信息,请参见下面的Joe \的注释-在类方法中,这没有什么区别。但是有可能的情况。类可以响应在根类中定义的实例方法-ѭ10本身就是这样的方法,在NSObject协议中定义为实例方法。因此,如果通过添加实例方法来扩展根类(例如,NSObject),则该方法在需要引用其自己的Class对象时应始终使用ѭ1。