Согласно ответу Вадиана Как NSKeyedUnarchiver.unarchiveObject для преобразования устаревшего NSKeyedUnarchiver.unarchiveObject для работы в Swift 5 / iOS 12 +
Мне удалось преобразовать архивную часть для работы, но я все еще не могу исправить разархивированную часть, вот мой код:
override func viewDidDisappear(_ animated: Bool)
{
super.viewDidDisappear(animated)
guard let packs = MGLOfflineStorage.shared.packs else { return }
for pack in packs
{
do
{
let userInfo = try? NSKeyedUnarchiver.unarchiveObject(ofClasses: [NSObject.self], from: pack.context) as? [String: String]
print("Suspending download of offline pack: “\(userInfo["name"] ?? "unknown")”")
}
catch
{
print("viewDidDisappear: KeyedUnarchiver Error")
}
pack.suspend()
}
}
, который дает мне ошибку:
Невозможно вызвать unarchiveObject со списком аргументов типа '(ofClasses: [NSObject.Type], from: Data)'
А это оригинал iOS 12- Код:
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// When leaving this view controller, suspend offline downloads.
guard let packs = MGLOfflineStorage.shared.packs else { return }
for pack in packs {
if let userInfo = NSKeyedUnarchiver.unarchiveObject(with: pack.context) as? [String: String] {
print("Suspending download of offline pack: “\(userInfo["name"] ?? "unknown")”")
}
pack.suspend()
}
}