切勿在未重新分配指向该对象的任何指针的情况下初始化该对象。举个例子,不要这样做:
NSObject *someObject = [NSObject alloc];
[someObject init];
如果对 init 的调用返回某个其他对象,您将得到一个指向最初分配但从未初始化的对象的指针。
实际上,这是Apple的ObjC文档中的示例,但我对此不太清楚,即为什么NSObject *someObject = [[NSObject alloc] init]
可以承诺返回我们刚刚需要的对象,同时NSObject *someObject = [NSObject alloc]; [someObject init];
不能?
只是因为 -init 可能返回与 someObject 不同的东西。在您的示例中,您必须将指针重新分配给 -init 的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)