簡體   English   中英

在 NSUserDefaults 和 Realm 中保存一個對象

[英]Save an object in NSUserDefaults and Realm

是否可以同時在NSUserDefaultsRealm (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.

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