比方说,我有一个叫人等级:如何在创建类对象时处理缺失值?
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终点,我想转换为类“人”的对象的数据。我使用类函数“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
}
建议表示赞赏。谢谢!
哟你可以使用使用ObjectMapper,并且无需声明为可选 – Byte