ObjC,为什么它是不正确时实现[页头]和[初始化]方法separatly? [重复](ObjC

2019-08-02 12:46发布

这个问题已经在这里有一个答案:

  • 我为什么不能分开的alloc和init? 4个回答

没有重新分配任何指针到该对象从未初始化的对象。 作为一个例子,不这样做:

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

如果调用初始化返回一些其他的对象,你会留下一个指针,最初被分配,但从来没有初始化的对象。

其实,这是苹果的ObjC文档中的例子,但我不与此相当明确,那就是,为什么NSObject *someObject = [[NSObject alloc] init]可以答应回到我们刚才所需要的对象,而NSObject *someObject = [NSObject alloc]; [someObject init]; NSObject *someObject = [NSObject alloc]; [someObject init]; 不能?

Answer 1:

正因为-init可以返回的东西从someObject不同。 在您的例子中,你必须将指针重新分配给-init的结果。



文章来源: ObjC-Why it is incorrect when implement [alloc] and [init] methods separatly? [duplicate]