我在may class的实例中运行此代码:
-(id)init {
self = [super init];
if (self) {
// my init code here
}
return self;
}
......并且自我回报为零。我知道这是正确的程序,应该这样做。但如果自我回归为零,我的反应应该是什么?抛出程序失败并终止的警报?忽略它 ?或者是否有建议的程序来安全地继续?
答案 0 :(得分:3)
我知道这听起来像是递归的,但我认为在这种情况下最好的办法是返回零。
当获取从初始化程序返回的nil值时,您无法真正预测对象的状态,因此最安全的做法就是处置对象。从初始化程序开始,这意味着只需将nil返回给调用者。
当分配]初始化时,我似乎总觉得这种情况会导致泄密,所以我一直非常犹豫,只是盲目地调用alloc] init。
答案 1 :(得分:2)
我从来没有亲眼见过它。但是由于objc处理nil非常好,所以我不会担心因为你从超级回复你的nil而得到超出你已经做过的特殊情况。