gpt4 book ai didi

ios - 创建类对象时如何处理缺失值?

转载 作者:行者123 更新时间:2023-11-28 12:42:09 24 4
gpt4 key购买 nike

假设我有一个名为 person 的类:

class Person: NSObject {
let name:String
let gender:String
let age:Int

init(name: String, gender: String, age: Int) {
self.name = name
self.gender = gender
self.age = age
}

class func createPerson(person:[String:AnyObject]) -> Person {
let name = person["name"] as? String
let gender = person["gender"] as? String
let age = person["age"] as? Int

return Person(name: name!, gender: gender!, age: age!)
}
}

我从一个 json 端点检索数据,我想将其转换为类“Person”的对象。我使用类函数“createPerson”来做到这一点。

处理 url 端点缺少值的情况的最佳方法是什么?

就我目前的代码而言,如果缺少其中一个值,此行将使程序崩溃:

return Person(name: name!, gender: gender!, age: age!)

我知道这是因为我强制解包了变量,但是我应该如何构建我的代码以说明变量值可能丢失的事实?

我是否应该将所有内容都声明为可选的?

let name:String?
let gender:String?
let age:Int?

init(name: String?, gender:String?, age:Int?) {
self.name = name
self.gender = gender
self.age = age
}

不胜感激。谢谢!

最佳答案

无需编写类函数和创建自定义初始化:

let entity = Person()
if let name = person["name"] as? String {
entity.name = name
}
if let gender = person["gender"] as? String {
entity.gender = gender
}
if let age = person["age"] as? Int {
entity.age = age
}

关于ios - 创建类对象时如何处理缺失值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39188084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com