gpt4 book ai didi

ios - 在 NSUserDefaults 和 Realm 中保存一个对象

转载 作者:行者123 更新时间:2023-11-28 10:42:31 24 4
gpt4 key购买 nike

是否可以在 NSUserDefaultsRealm (Swift) 中保存一个对象?

我在创建模型时发现了一个问题,因为 NSUserDefaults 需要继承 NSObject 而 Realm 需要继承 Object

这样做,引发了这个错误

Multiple inheritance from classes 'Object' and 'NSObject'

最佳答案

使用 Swift4 的 Codable 协议(protocol),您可以将自定义类保存到 UserDefaults 而无需遵守旧的 NSCoding 协议(protocol)。

class Team: Object, Codable {
@objc dynamic var id:Int = 0
@objc dynamic var name:String = ""
}

let team = Team()
team.id = 1
team.name = "Team"
let encodedTeam = try! JSONEncoder().encode(team)
UserDefaults.standard.set(encodedTeam, forKey: "team")
let decodedTeam = try! JSONDecoder().decode(Team.self, from: UserDefaults.standard.data(forKey: "team")!)

这解决了多重继承的问题,因为您的类型不再需要从 NSObject 继承。

关于ios - 在 NSUserDefaults 和 Realm 中保存一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49925692/

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