我在 may 类的实例中运行这段代码:
-(id)init {
self = [super init];
if (self) {
// my init code here
}
return self;
}
...然后 self 返回 nil。我知道这是正确的程序,应该这样做。但是如果 self 返回 nil,我的 react 应该是什么?发出程序失败并正在终止的警报?忽略它 ?或者是否有推荐的程序来安全地继续?
最佳答案
我知道这听起来是递归的,但我认为在这种情况下最好的做法是返回 nil。
当从初始值设定项返回 nil 值时,您无法真正预测对象的状态,因此最安全的做法是处置该对象。在初始化器中,这意味着只将 nil 返回给调用者。
在 alloc]init]ing 时,我总是觉得这种情况会导致泄漏,所以我一直很犹豫是否要盲目地调用 alloc]init]。
关于objective-c - 当你运行 self=[super init] 并且它返回 nil 时,正确的 react 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7225164/