注意:我对 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;
}
...
这只是旧 C 时代的遗留物,还是我没有看到的东西?
我知道这不是问题,因为我也可以总是调用 alloc 和 init,但是由于这有点乏味,我至少想知道我为什么要这样做。
到目前为止,我很喜欢这种语言的表现力,但这是我想完全理解的东西,以便以 Objective-C 的方式思考。
谢谢!