objective-c - 当你运行 self=[super init] 并且它返回 nil 时,正确的 react 是什么?

标签 objective-c xcode null

我在 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/

相关文章:

objective-c - NSNumberFormatter 货币删除尾随零

xcode - 从特定时间限制 UIDatePicker 日期。例如输入 DOB 以限制年龄限制

php - SQL SELECT 返回数组但 PHP 认为它为空

php - iOS - 没有推送通知的常见原因是什么

objective-c - 从 plist 文件写入和读取

ios - 自 Xcode 8 以来 UI 测试速度变慢

ios - 哪个数据库可以与 Xcode 一起使用并同时通过网站填充?

Java - 客户端从 in.readLine() 接收空响应

java - 如何显示方法是否可能返回 null

iphone - 如何在iPhone SDK中在后台运行闹钟?