有两种Objective C/Cocoa的构造函数选择:
1. 类构造函数
1. 类构造函数
Product *product = [Product productWithIdentifier:@"Chocolate"];
// Use product
2. 分配 / 初始化 构造函数
Product *product = [[Product alloc] initWithIdentifier:@"Chocolate"];
// Use product
[product release];
我的工作
- 我倾向于使用类方法,因为它看起来更干净,而且不需要释放。
- 我看到很多alloc/init - 这样做有什么优势呢?
我的问题
- 哪一个更可取?还是只是个人口味的问题?
代码
为了上下文,Product类将具有以下内容:
+(Product *)productWithIdentifier:(NSString *)identifier_ {
return [[[[self class] alloc] initWithIdentifier:identifier] autorelease];
}
-(Product *)initWithIndentifier:(NSString *)identifier_ {
self = [super init]
if (self) {
identifier = identifier_;
}
return self;
}