将对象数组中的选定项目保存到 swift 中的 UserDefaults 4
Save selected items in array of objects to UserDefaults in swift 4
我已经将我的 Json 解码为结构,现在我有对象数组,每个对象都有一些值,所以我想要当用户 select 集合中的项目查看 selected数组中的对象附加到 UserDefaults 中的对象数组我读到了类似的问题所以我在下面使用了这个函数但是它不起作用
@objc func likeOrDislike (_ sender : UIButton!) {
let arrays = UserDefaults.standard.value(forKey: "Liked") as? [ListsModel.ResultValue]
print(arrays as Any)
var items = arrays
let item = self.adv.resultValue[sender.tag]
if arrays != nil {
if items!.contains(where: {([=11=].id == item.id)}) {
items!.filter({([=11=].id == item.id)})
} else {
items!.append(item)
}
} else {
items = [item]
}
UserDefaults.standard.setValue(items, forKey: "Liked")
UserDefaults.standard.synchronize()
}
这是我用于解码的模型
public class ListsModel {
struct Response : Decodable {
var resultValue : [ResultValue]
}
struct ResultValue : Decodable {
let id : String?
let title : String?
let user_id : String?
let username : String?
let user_image : String?
let release_date : String?
let start_date : String?
let salary : String?
let salary_id : String?
let work_field_id : String?
let adv_type_id : String?
let work_field : String?
let description : String?
let adv_base_id : String?
let is_spec : String?
let status : String?
let p_expire_date : String?
}
}
将所有模型对象通过stringify转换为字符串,然后存储到用户默认值,想用就用。
我已经将我的 Json 解码为结构,现在我有对象数组,每个对象都有一些值,所以我想要当用户 select 集合中的项目查看 selected数组中的对象附加到 UserDefaults 中的对象数组我读到了类似的问题所以我在下面使用了这个函数但是它不起作用
@objc func likeOrDislike (_ sender : UIButton!) {
let arrays = UserDefaults.standard.value(forKey: "Liked") as? [ListsModel.ResultValue]
print(arrays as Any)
var items = arrays
let item = self.adv.resultValue[sender.tag]
if arrays != nil {
if items!.contains(where: {([=11=].id == item.id)}) {
items!.filter({([=11=].id == item.id)})
} else {
items!.append(item)
}
} else {
items = [item]
}
UserDefaults.standard.setValue(items, forKey: "Liked")
UserDefaults.standard.synchronize()
}
这是我用于解码的模型
public class ListsModel {
struct Response : Decodable {
var resultValue : [ResultValue]
}
struct ResultValue : Decodable {
let id : String?
let title : String?
let user_id : String?
let username : String?
let user_image : String?
let release_date : String?
let start_date : String?
let salary : String?
let salary_id : String?
let work_field_id : String?
let adv_type_id : String?
let work_field : String?
let description : String?
let adv_base_id : String?
let is_spec : String?
let status : String?
let p_expire_date : String?
}
}
将所有模型对象通过stringify转换为字符串,然后存储到用户默认值,想用就用。