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

标签 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 为零。

最佳答案

像这样:

class User {
    var id: Int!
    init?(data: JSON) {
        guard let id = Int(data["id"]) else {
            return nil
        }

        self.id = id
    }
}

关于swift - 如何在 init() 期间取消对象的初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36272141/

相关文章:

ios - 自定义委托(delegate)和数据源 NSObject 最佳实践

ios - CollectionView Segue 在接收 ViewController 时发现 nil

ios - 过滤 BehaviorRelay 数组 rxswift

ios - 在 Swift 中持续更新图像

ios - 在 iOS 中围绕枢轴点旋转 ImageView

swift - 具有右对齐标签的 Stackview 需要填充

ios - Firebase 在 Swift 中使用 PromiseKit/AwaitKit 调用永远不会返回

swift - Swift 4 自定义参数标签是否始终是必需的,或者只是为了消除函数的歧义?

swift - MapKit 默认缩放

ios - 更改 UIAlertController 的标题颜色