这是一个例子直接从苹果公司的文件 -什么时候应该使用Class方法而不是init实例方法?
@implementation MyClass
- (id)initWithString:(NSString *)aName
{
self = [super init];
if (self) {
name = [aName copy];
}
return self;
}
+ (MyClass *)createMyClassWithString: (NSString *)aName
{
return [[[self alloc] initWithString:aName] autorelease];
}
@end
正如我无论如何建立在每种情况下一个新的MyClass
对象,我想知道为什么我会用类方法createMyClassWithString:aName
代替的实例方法initWithString:aName
感谢
为了与命名约定保持一致,请从您的类方法名称中删除“create”前缀。在处理类似于[[NSObject alloc] init]的Core Foundation对象'CFClassCreate'时使用Create。创建的使用意味着你负责管理内存。 – falconcreek 2010-08-20 21:01:14
感谢哥们,看起来很奇怪,苹果选择在他们的文档中这样命名。 – johnrees 2010-08-22 14:26:14