如何保存 MKMapItem 类型的数组
How to save an array of type MKMapItem
如何在 UserDefaults
的帮助下保存和检索 MKMapItem
的数组?
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 不应用于存储大于 numbers/strings/bools 的数据。为此,您应该使用 NSKeyArchiver
如何在 UserDefaults
的帮助下保存和检索 MKMapItem
的数组?
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 不应用于存储大于 numbers/strings/bools 的数据。为此,您应该使用 NSKeyArchiver