栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用NSKeyedUnarchiver unarchivedObject(ofClass:from :)取消存档数组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用NSKeyedUnarchiver unarchivedObject(ofClass:from :)取消存档数组

您可以

unarchiveTopLevelObjectWithData(_:)
用来取消归档由归档的数据
archivedData(withRootObject:requiringSecureCoding:)
。(我相信现在还不建议使用。)

但是在显示一些代码之前,您最好:

  • 避免使用

    NSData
    Data
    改用

  • 避免使用

    try?
    可用于调试的错误信息

  • 删除所有不需要的演员表


试试这个:

private static func archiveWidgetDataArray(widgetDataArray : [WidgetData]) -> Data {    do {        let data = try NSKeyedArchiver.archivedData(withRootObject: widgetDataArray, requiringSecureCoding: false)        return data    } catch {        fatalError("Can't enpre data: (error)")    }}static func loadWidgetDataArray() -> [WidgetData]? {    guard        isKeyPresentInUserDefaults(key: USER_DEFAULTS_KEY_WIDGET_DATA), //<- Do you really need this line?        let unarchivedObject = UserDefaults.standard.data(forKey: USER_DEFAULTS_KEY_WIDGET_DATA)    else {        return nil    }    do {        guard let array = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(unarchivedObject) as? [WidgetData] else { fatalError("loadWidgetDataArray - Can't get Array")        }        return array    } catch {        fatalError("loadWidgetDataArray - Can't enpre data: (error)")    }}

但是,如果您要制作新的应用,则最好考虑使用

Codable



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号