取消存档 - iOS Swift - 无法使用新方法

Unarchiving - iOS Swift - Can't get new method going

提问人:Kent 提问时间:7/31/2023 最后编辑:AlexanderKent 更新时间:7/31/2023 访问量:53

问:

我以前曾经用于取消存档以前存档并存储在数据模型中的数据。NSKeyedUnarchiver.unarchiveTopLevelObjectWithData

我现在正在尝试从已弃用切换到 as。NSKeyedUnarchiver.unarchiveTopLevelObjectWithData.unarchivedObject(ofClass:from:)NSKeyedUnarchiver.unarchiveTopLevelObjectWithData

我已经尝试了一堆绝对的尝试来让它工作,我觉得我离工作代码越来越远了。

下面是我存档和取消存档的原始代码。有人可以告诉我需要做什么才能转换为新方法吗?

谢谢。

存档代码:

var selectedAmenities = [String: String]()

var archivedAmenities: Data!
do {
    archivedAmenities = try NSKeyedArchiver.archivedData(withRootObject: selectedAmenities, requiringSecureCoding: false)
} catch {
    print("Couldn't archive the Amenities.")
}

解存档代码:

var selectedAmenities = [String: String]()

do {
    let unArchivedAmenities = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(theSite.amenities!)
    selectedAmenities = unArchivedAmenities as! [String: String]
} catch {
    print("Couldn't unarchive the Amenities.")
iOS Swift 存档 nskeyedarchiver nskeyedunarchiver

评论

0赞 Alexander 7/31/2023
你到底有什么错误?
2赞 Itai Ferber 7/31/2023
具体来说,如果你在你的区块内登录,你会看到什么?errorcatch
1赞 Itai Ferber 7/31/2023
WWDC18 Data You Can Trust 演讲可能很有启发性;幻灯片以 PDF 格式提供
0赞 Kent 8/1/2023
问题是,我尝试了很多不同的东西,我没有特别的错误。我什至不知道从哪里开始。我想我会看你可以信任的数据,看看会发生什么。
1赞 Kent 8/2/2023
呜呼!let unArchivedAmenities = try NSKeyedUnarchiver.unarchivedDictionary(ofKeyClass: NSString.self, objectClass: NSString.self, from: theSite.amenities!) as [String: String]?那是@ItaiFerber谢谢!

答: 暂无答案