【发布时间】:2011-04-04 03:46:52
【问题描述】:
实现返回自动释放对象的方法的最佳方法是什么?下面的代码能正常工作吗?
@implementation MyClass
-(void) myclassWithSomeParameter:(SomeType) parameter
{
return [[MyClass allocWithSomeParameter:parameter] autorelease];
}
【问题讨论】:
实现返回自动释放对象的方法的最佳方法是什么?下面的代码能正常工作吗?
@implementation MyClass
-(void) myclassWithSomeParameter:(SomeType) parameter
{
return [[MyClass allocWithSomeParameter:parameter] autorelease];
}
【问题讨论】:
返回类型必须是MyClass *,你需要alloc新的实例,并且它应该是类方法而不是实例方法(否则你需要MyClass的现有实例)。
+ (MyClass *)myClassWithSomeParameter:(SomeType)parameter {
return [[[MyClass alloc] initWithSomeParameter:parameter] autorelease];
}
然后像这样创建实例:
MyClass *instance = [MyClass myClassWithSomeParameter:parameter];
【讨论】: