Я все еще новичок в Swift, и я пытаюсь архивировать и разархивировать массив UIColours в NSUserDefaults. Я знаю, что в ios 12 мне нужно использовать unarchivedObject(ofClass:from:)
- но я не уверен, как это использовать.
Я пытался ответить на этот вопрос: Разархивировать массив с помощью NSKeyedUnarchiver unarchivedObject (ofClass: from:)
но я думаю, что делаю что-то не так.
Вот код, который я пытаюсь:
let faveColoursArray = [colour1, colour2]
private func archiveColours() -> Data {
do {
let data = try NSKeyedArchiver.archivedData(withRootObject: faveColoursArray, requiringSecureCoding: false)
return data
} catch {
fatalError("can't encode data.")
}
}
func loadColours() -> [UIColor]? {
guard let unarchivedObject = UserDefaults.standard.data(forKey: "faveColours") else {
return nil
}
do {
guard let array = try NSKeyedUnarchiver.unarchivedObject(ofClass: UIColor.self, from: unarchivedObject) else {
fatalError("Can't load colours.")
}
return array
} catch {
fatalError("Can't load colours.")
}
}
Thankyou