簡體   English   中英

Swift 錯誤“類型‘BookingDataModel’不符合‘Decodable’協議”

[英]Swift Error "Type 'BookingDataModel' does not conform to protocol 'Decodable'"

我想讓我的應用程序的一部分離線,因為我的客戶要求它。 我一直在絞盡腦汁使我的結構可編碼,以便我可以將數據保存為用戶默認值,但我總是收到此錯誤

類型“BookingDataModel”不符合“Decodable”協議

這是我的 BookingDataModal:

struct BookingDataModel: Codable {

    static var shared = BookingDataModel()

    var collaps = false
    var _id = ""
    var userId = ""
    var venderName = ""
    var created_at = ""
    var transaction_id = ""
    var payment_method = ""
    var updated_at = ""
    var booking_confirmed = false
    var booking_status = ""
    var payment_status = false
    var type = ""
    var isCanceledRequest: Bool?

    var flight: [FlightBookingDataModel]?
    var newFlight: (departure: [FlightBookingDataModel], return: [FlightBookingDataModel])?
    var event: HotelBookingDataModel?
    var hotel: NewHotelBookingDataModel?//HotelBookingDataModel?

    var isAxaPolicy = false
    var relationshipId = ""
    var passengers = [UsersModel]()
    var total = 0.0
    var tacCoinDiscount: Int?
    var couponDiscount: Int?
    var afterDiscountAmount: Int?

     func getBookingDataModel(arr: NSArray, type: String) -> [BookingDataModel] {
    // save data from API
    }
    }

起初我認為我的其他模態不可編碼,所以我將它們全部設為可編碼,但它仍然會拋出相同的錯誤 這是 FlightBookingDataModal :

struct FlightBookingDataModel: Codable {

    static var shared = FlightBookingDataModel()

    var pnrData = PNRDataModel()
    var src_name = ""
    var dst_name = ""
    var srcCode = ""
    var dstCode = ""

    var atime_utc = String()
    var dtime_utc = String()
    var atime = String()
    var dtime = String()

    var flight_no = ""
    var checkin = ""
    var price = 0.0
    var airLineName = ""
    var eticket_link = ""
    var invoice = ""
    var isReturnFlight = false

    func getFlightBookigDataModel(dict: NSDictionary) -> [FlightBookingDataModel] {
    // Save data from API
    }
    }

PNR 模式:

class PNRDataModel: Codable  {
  var src = ""
  var dst = ""
  var iata = ""
  var pnr = ""
  }

酒店預訂數據模型:

struct HotelBookingDataModel: Codable {

    var cityName = ""
    var name = ""
    var address = ""
    var startOfServiceTime = ""
    var endOfServiceTime = ""
    var aetherReference = ""
    var provider = ""
    var reference = ""
    var price = 0.0
    var date = ""
    var reservationId = ""
    }

新酒店預訂數據模型:

struct NewHotelBookingDataModel: Codable {
    var name = ""
    var address = ""
    var cityName = ""
    var price = 0.0
    var reference = ""
    var provider = "" //not found in new response
    var startOfServiceTime = ""
    var endOfServiceTime = ""
    var aetherReference = ""
    }

如果有人能給我任何關於為什么這不起作用的見解,那將對我有很大幫助。 我只想將 [BookingDataModal] 離線保存一段有限的時間,直到用戶重新上線。

錯誤的原因是newFlight中的屬性BookingDataModel

Codable不支持元組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM