[英]Save an object in NSUserDefaults and Realm
是否可以同時在NSUserDefaults和Realm (Swift) 中保存對象?
我在創建模型時發現了一個問題,因為NSUserDefaults需要繼承NSObject
而 Realm 需要繼承Object
。
這樣做,引發了這個錯誤
Multiple inheritance from classes 'Object' and 'NSObject'
使用 Swift4 的Codable
協議,您可以將自定義類保存到UserDefaults
而無需遵守舊的NSCoding
協議。
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
繼承。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.