【发布时间】:2016-08-28 04:43:22
【问题描述】:
假设我有一个名为 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!)
}
}
我从要转换为“Person”类对象的 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 并且不需要在那里声明为可选