如何在Objective-C中实现myclassWith ...方法?

pyo*_*yon 1 objective-c autorelease

实现返回自动释放对象的方法的最佳方法是什么?以下代码是否正常工作?

@implementation MyClass

-(void) myclassWithSomeParameter:(SomeType) parameter
{
    return [[MyClass allocWithSomeParameter:parameter] autorelease];
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ble 6

返回类型必须是MyClass *,您需要alloc新实例,它应该是类方法而不是实例方法(否则您需要现有实例MyClass).

+ (MyClass *)myClassWithSomeParameter:(SomeType)parameter {
  return [[[MyClass alloc] initWithSomeParameter:parameter] autorelease];
}
Run Code Online (Sandbox Code Playgroud)

然后像这样创建实例:

MyClass *instance = [MyClass myClassWithSomeParameter:parameter];
Run Code Online (Sandbox Code Playgroud)