为什么我会收到这个快速的错误?调用中缺少参数'price'的参数

  • 本文关键字:参数 错误 调用 price swift
  • 更新时间 :
  • 英文 :


问题:我正在尝试使用 json 数据创建自定义对象,但是 swift 给了我一个错误,即在 im 循环/向对象添加数据时缺少参数,但在模型中 im 使用可选,所以我对问题所在感到困惑。 最终,这些数据将进入表视图。

我的模型(使用可选):

class FlightDataModel {
var airline: String?
var price: String?
init(airline: String?, price: String?) {
self.airline = airline
self.price = price
}  
}

alamofire API 请求..

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) {

-----问题区域

-------------
let myFlight = FlightDataModel(airline: carrierName["name"] as String)
self.arrayOfFlights[index] = myFlight
//println("(self.arrayOfFlights[index].airline)")

}
}
}
}
}

priceinit构造函数的参数。 必须提供参数,即使参数是可选类型。 如果你没有它的值,你可以给它nil

let myFlight = FlightDataModel(airline: carrierName["name"] as String, price: nil)

如果您希望price默认为nil(如果未提供该参数),请执行以下两项操作之一:

  1. 您可以在初始值设定项中为price提供默认值:

    init(airline: String?, price: String? = nil) {
    self.airline = airline
    self.price = price
    }
    
  2. 您可以提供第二个单独的init,只需airline

    init(airline: String?) {
    self.airline = airline
    }
    

最新更新