[MyObject myObjectWith:...]

时间:2014-06-26 17:00:39

标签: objective-c constructor initialization

有人知道如何制作这种“类自动实例化器”:

myDict = [NSDictionnary dictionnaryWithCapacity: 0];

我找不到任何资源(也许我只是不知道术语)

3 个答案:

答案 0 :(得分:2)

不确定你的意思......你的意思是创建一个对象的类方法吗?

@implementation myClass

+(myClass *)myClassWithParameter:(int)whatever
{
    myClass instance = [[myClass alloc] init];
    [instance doWhatever:whatever];
    return instance;
}

答案 1 :(得分:0)

这是一种类方法(用“+”代替“ - ”表示。)

+ (MyClass *)myClassWithObject:(ObjectType *)object
{
    //do whatever you need to make an instance of MyClass using that object's data
    return myClassInstance;
}

答案 2 :(得分:0)

这只是一个静态方法,您可以使用它来代替alloc / init。在objective-c中,在元类的实例上调用静态方法,这就是为什么它们有时被称为“类方法”。

@implementation TheBestObjectEver
+ (instancetype)makeMeAnObject {
    return [[self alloc] init];
}
@end

TheBestObjectEver *myObject = [TheBestObjectEver makeMeAnObject];