Swift 为什么我会迅速出错?缺少参数'的参数;价格';随时待命
问题:我试图用json数据创建一个自定义对象,但是swift给了我一个错误,即在我循环/向对象添加数据时缺少一个参数,但是在模型中,我使用了一个可选参数,所以我不知道问题出在哪里。最终,这些数据将进入表视图 我的型号(使用选项): alamofire API请求Swift 为什么我会迅速出错?缺少参数'的参数;价格';随时待命,swift,Swift,问题:我试图用json数据创建一个自定义对象,但是swift给了我一个错误,即在我循环/向对象添加数据时缺少一个参数,但是在模型中,我使用了一个可选参数,所以我不知道问题出在哪里。最终,这些数据将进入表视图 我的型号(使用选项): alamofire API请求 request(qpxRequest).responseJSON { (request, response, json, error) -> Void in if response != nil {
request(qpxRequest).responseJSON { (request, response, json, error) -> Void in
if response != nil {
//NSLog("%@", response!)
}
if json != nil {
if let myJSON = json as? [String:AnyObject] {
if let trips = myJSON["trips"] as? [String:AnyObject] {
if let data = trips["data"] as? [String:AnyObject] {
if let carriers = data["carrier"] as? [[String:String]] {
for (index, carrierName) in enumerate(carriers) {
//----问题领域-------------
price
是init
构造函数的参数。即使参数是可选类型,也必须提供参数。如果您没有它的值,可以给它nil
:
let myFlight = FlightDataModel(airline: carrierName["name"] as String, price: nil)
如果希望
price
默认为nil
,如果未提供该参数,则执行以下两种操作之一:
price
提供默认值:
init(airline: String?, price: String? = nil) {
self.airline = airline
self.price = price
}
init
,它只需要航空公司
:
init(airline: String?) {
self.airline = airline
}
所以我添加了这一点,也没有错误:致命错误:数组索引超出范围。在下一行代码中,从技术上讲,这是另一个问题。数组是如何声明的?您可能只想使用
append
将航班添加到arrayOfFlights
.var arrayOfFlights:[FlightDataModel]=[FlightDataModel]()arrayOfFlights.append(myFlight)
那么在输入价格数据时我是否也将airline:nil设置为空?然后访问以下数据:myFlight[0]。price和myFlight[0]。航空公司?
init(airline: String?, price: String? = nil) {
self.airline = airline
self.price = price
}
init(airline: String?) {
self.airline = airline
}