0

切勿在未重新分配指向该对象的任何指针的情况下初始化对象。例如,不要这样做:

NSObject *someObject = [NSObject alloc];
[someObject init];

如果对 init 的调用返回一些其他对象,您将得到一个指向最初分配但从未初始化的对象的指针。

实际上,这是Apple的ObjC文档中的一个示例,但我对此不太清楚,即为什么NSObject *someObject = [[NSObject alloc] init]promise可以返回我们刚需要的对象,而NSObject *someObject = [NSObject alloc]; [someObject init];不能?

4

1 回答 1

3

仅仅因为 -init 可能返回与 someObject 不同的东西。在您的示例中,您必须将指针重新分配给-init 的结果。

于 2012-11-09T02:49:16.810 回答