相关疑难解决方法(0)

为什么在Objective-C中单独调用alloc和init?

注意:我对Objective-C比较新,我来自Java和PHP.

有人可以向我解释为什么我总是要先分配然后初始化一个实例?

不能在这样的init方法中完成:

+ (MyClass*)init {
    MyClass *instance = [MyClass alloc];
    [instance setFoo:@"bla"];

    return instance;
}

+ (MyClass*)initWithString:(NSString*)text {
    MyClass *instance = [MyClass init];
    [instance setFoo:text];

    return instance;
}
...
Run Code Online (Sandbox Code Playgroud)

这只是旧C日的残骸还是有些东西我没有看到?

我知道这不是问题,因为我总是可以调用alloc和init,但由于它有点乏味,我想至少知道我为什么要这样做.

到目前为止,我喜欢语言的表达能力,但这是我想要完全理解的,以便考虑Objective-C的方式.

谢谢!

oop cocoa objective-c init alloc

15
推荐指数
5
解决办法
6402
查看次数

标签 统计

alloc ×1

cocoa ×1

init ×1

objective-c ×1

oop ×1