Как я могу сохранить и получить массив MKMapItem с помощью UserDefaults?
var recentDestination: [MKMapItem] = []





Поскольку 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)
}
}
UserDefaults не следует использовать для хранения данных большего размера, чем числа/строки/логические значения. Для этого вам следует использовать NSKeyArchiver.
MKMapItemсоответствуетNSSecureCoding