gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:06:59 24 4
gpt4 key购买 nike

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

我的模型(使用可选):

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


}
}
}
}
}

最佳答案

price 是您的 init 构造函数的参数。必须提供参数,即使参数是可选 类型。如果你没有它的值(value),你可以给它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
    }

关于swift - 为什么我会收到这个快速错误?调用中缺少参数 'price' 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30141053/

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