确认协议
Codable
在所有要保存的结构中
UserDefaults
.
struct FlightSearchObj: Codable {
var FlightTripType:Int = 0
var FlightArrObj: [FlightObj]?
var FlightTravellers: [String : Int] = ["Adults": 1, "Child": 0, "Infants": 0]
var FlightClass : String = "Economy"
var PreferredAirline : [String] = []
var FlightFareType : String = "All"
}
struct FlightObj: Codable {
var fromAirportObj:AirportDetail?
var toAirportObj:AirportDetail?
var DepartDate: String?
}
struct AirportDetail: Codable {
// Your properties
}
现在您需要保存并从中获取该对象
用户默认值
使用
PropertyListEncoder
和
PropertyListDecoder
.
func FetchOnewayRoundTripObjValues(obj:FlightSearchObj){
if let data = UserDefaults.standard.value(forKey:"flightOnewayRoundTripObj") as? Data {
let res = try? PropertyListDecoder().decode(FlightSearchObj.self, from: data)
print("OneWay/RoundTrip Obj found - \(res)")
}else{
print("OneWay/RoundTrip Obj not found")
print(obj)
UserDefaults.standard.set(try? PropertyListEncoder().encode(obj), forKey:"flightOnewayRoundTripObj")
// Constants.sharedInstance.defaults.set(obj, forKey: "flightOnewayRoundTripObj")
}
}
func FetchMultiCityObjValues(obj:FlightSearchObj){
if let data = UserDefaults.standard.value(forKey:"flightOnewayRoundTripObj") as? Data {
let res = try? PropertyListDecoder().decode(FlightSearchObj.self, from: data)
print("MultiFlight Obj found - \(res)")
}else{
print("MultiFlight Obj not found")
UserDefaults.standard.set(try? PropertyListEncoder().encode(obj), forKey:"flightMultiFlightObj")
// Constants.sharedInstance.defaults.set(obj, forKey: "flightMultiFlightObj")
}
}