Часть своих настроек я хочу сохранить с помощью UserDefaults.
Я уже нашел это решение здесь:
Сохранение пользовательских объектов в NSUserDefaults
Но я не мог понять, как сохранить, если у меня есть пользовательские объекты в пользовательском объекте.
Мои занятия выглядят так:
class ConfigLabelMainList: NSObject, NSCoding {
var labelMiddleFirst: StatsIntervalModel
var labelMiddleSecond: StatsIntervalModel
var labelMiddleThird: StatsIntervalModel
var labelRightFirst: StatsIntervalModel
var labelRightSecond: StatsIntervalModel
init(labelMiddleFirst: StatsIntervalModel, labelMiddleSecond: StatsIntervalModel, labelMiddleThird: StatsIntervalModel, labelRightFirst: StatsIntervalModel, labelRightSecond: StatsIntervalModel) {
self.labelMiddleFirst = labelMiddleFirst
self.labelMiddleSecond = labelMiddleSecond
self.labelMiddleThird = labelMiddleThird
self.labelRightFirst = labelRightFirst
self.labelRightSecond = labelRightSecond
}
func encode(with aCoder: NSCoder) {
}
required convenience init?(coder aDecoder: NSCoder) {
}
}
class StatsIntervalModel: NSObject, NSCoding {
var stat: String
var interval: String
init(stat: String, interval: String) {
self.stat = stat
self.interval = interval
}
required convenience init?(coder aDecoder: NSCoder) {
let stat = aDecoder.decodeObject(forKey: "stat") as! String
let interval = aDecoder.decodeObject(forKey: "interval") as! String
self.init(stat: stat, interval: interval)
}
func encode(with aCoder: NSCoder) {
aCoder.encode(stat, forKey: "stat")
aCoder.encode(interval, forKey: "interval")
}
}
Как бы выглядело решение?