Названия все парюсь из json, он в программе в оффлайне
Когда меняю значение на true, оно становится у всех элементов
Модель
struct LangName: Codable {
let name: String
let image: String
let text: String
var active: Bool
let levels: [Level]
}
extension LangName {
enum CodingKeys: String, CodingKey { // declaring our keys
case name
case image
case text
case levels
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
let name: String = try container.decode(String.self, forKey: .name)
let image: String = try container.decode(String.self, forKey: .image)
let text: String = try container.decode(String.self, forKey: .text)
let levels: [Level] = try container.decode([Level].self, forKey: .levels)
self.init(name: name, image: image, text: text, active: false, levels: levels)
}
}
Код сохранения
var rowNumber : Int = 0
var arrayLanguages:Languages!
var langName: String? = nil
override func viewDidLoad() {
super.viewDidLoad()
ParsingJson.parsingData { (value) in
self.arrayLanguages = value
}
}
func change() {
let value = arrayLanguages.langName[rowNumber].active
UserDefaults.standard.set(true, forKey: "\(value)")
UserDefaults.standard.synchronize()
}
func printNewValue() {
let value = arrayLanguages.langName[rowNumber].active
let newValue = UserDefaults.standard.bool(forKey: "\(value)")
print(arrayLanguages.langName[rowNumber].name)
print(value)
print(newValue)
}
@IBAction func subscription(_ sender: Any) {
change()
}
@IBAction func printing(_ sender: Any) {
printNewValue()
}
}