Objective c 如何在objective c静态方法中检测调用类
如何从静态方法中检测调用类,从而在类被子类化时检测子类?(请参见MakeInstance中的注释)Objective c 如何在objective c静态方法中检测调用类,objective-c,class,inheritance,factory-method,Objective C,Class,Inheritance,Factory Method,如何从静态方法中检测调用类,从而在类被子类化时检测子类?(请参见MakeInstance中的注释) 我认为,对于您正在努力实现的目标,适当的解决方案是: + (id) MakeInstance{ id instance = [[self alloc] init]; return instance; } 正如Cyrille所指出的,如果您想遵循惯例(并且不使用ARC),它可能会返回[实例自动释放]。我认为您尝试实现的适当解决方案是: + (id) MakeInstance{
我认为,对于您正在努力实现的目标,适当的解决方案是:
+ (id) MakeInstance{
id instance = [[self alloc] init];
return instance;
}
正如Cyrille所指出的,如果您想遵循惯例(并且不使用ARC),它可能会返回
[实例自动释放]
。我认为您尝试实现的适当解决方案是:
+ (id) MakeInstance{
id instance = [[self alloc] init];
return instance;
}
正如Cyrille指出的,如果您想遵循约定(并且不使用ARC),它可能会返回
[实例自动释放]
。UIAdam的解决方案非常适合您的情况。尽管更具体地说,如果您想检测从哪个类调用方法,请在对象上使用[self class]
,或者对类使用self
。[self class]
,或者简单地对类使用self
。这应该可以做到,假设您在初始值设定项中添加了一个autorelease
,假设您在初始值设定项中添加了一个autorelease
。Objective-C中没有静态方法。相反,有类方法,如您在示例中所示。请注意,方法名称应该以小写字母开头,例如,