如何在init()期间取消对象的初始化?

时间:2016-03-28 22:14:42

标签: swift

class User {
    var id: Int!
    init(data: JSON){
        id = data["id"].int
        //if id doesn't exist, then cancel the init and return nil.
    }
}

我想通过将JSON传递给它的构造函数来初始化用户。但是,有时JSON不匹配。在这种情况下,我希望取消初始化,并将User设为nil。

2 个答案:

答案 0 :(得分:3)

类似的东西:

{{1}}

答案 1 :(得分:1)

创建一个" Failable Initializer" - 即将返回selfnil

class User {
  var id: Int!

  init?(data: JSON){
    if <id doesn't exist> {
      return nil
    }

    id = data["id"].int
  }
}