Как сохранить массив типа MKMapItem - PullRequest
0 голосов
/ 05 июня 2019

Как сохранить и получить массив MKMapItem с помощью UserDefaults?

var recentDestination: [MKMapItem] = []

Ответы [ 2 ]

1 голос
/ 05 июня 2019

Поскольку MKMapItem соответствует NSCoding, вы можете сохранить [MKMapItem] в виде Data в UserDefaults, используя NSKeyedArchiver, т.е.

let data = NSKeyedArchiver.archivedData(withRootObject: recentDestination)
UserDefaults.standard.set(data, forKey: "recentDestination")

Аналогично, извлекать сохраненные данные из UserDefaults использовать NSKeyedUnarchiver примерно так,

if let data = UserDefaults.standard.data(forKey: "recentDestination") {
    if let arr = NSKeyedUnarchiver.unarchiveObject(with: data) as? [MKMapItem] {
        print(arr)
    }
}
0 голосов
/ 05 июня 2019

UserDefaults не следует использовать для хранения данных больше, чем числа / строки / bools.Для этого вам следует использовать NSKeyArchiver

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...