這是一個例子直接從蘋果公司的文件 -什麼時候應該使用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