swift - NSNumber swift 字典到 userdefaults swift3

标签 swift dictionary nsuserdefaults nsnumber

我正在尝试将 swift 字典 [NSNumber : NSNumber] 保存到 UserDefaults。我已经尝试将其转换为 NSDictinonary,但是当我使用 set() 函数时应用程序仍然崩溃。

Key 是一个 beacon minor key (NSNumber) 值是 NSTimeinterval 转换为 NSNumber

崩溃:

libc++abi.dylib: terminating with uncaught exception of type NSException

var  recentBeacons: [NSNumber : NSNumber] = [:]

func saveRecentBeaconDict()
{
    let recentBeaconKeys = recentBeacons.keys
    print("keys type is \(String(describing: recentBeaconKeys.self))")

    let recentBeaconsNSDict = recentBeacons as NSDictionary
    UserDefaults.standard.set(recentBeaconsNSDict, forKey:"recentBeacons")
}

prints out: keys type is LazyMapCollection< Dictionary < NSNumber, NSNumber >, NSNumber >(_base: [46171: 1501585588.173543], _transform: (Function))

最佳答案

尝试以下答案。

    var  recentBeacons: [NSNumber : NSNumber] = [:]
    func saveRecentBeaconDict()
    {
        let archivedObject = NSKeyedArchiver.archivedData(withRootObject: recentBeacons as NSDictionary)
        UserDefaults.standard.set(archivedObject, forKey: "recentBeacons")

        let data = UserDefaults.standard.object(forKey: "recentBeacons") as? Data
        if let _data = data {

            let allData = NSKeyedUnarchiver.unarchiveObject(with: _data) as! NSDictionary
            print(allData)
        }
    }

关于swift - NSNumber swift 字典到 userdefaults swift3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45435537/

相关文章:

python - 如何将函数的单独字典输出合并到一个字典中?

ios - 观看视频广告后在屏幕上更新分数

ios - iOS 如何存储用户数据

swift - 使用单元格中的按钮转到详细 View Controller

c# - 元组(或数组)作为 C# 中的字典键

swift - 可选属性的 Realm Swift 复合键

dictionary - 从 map 中获取任意键/项目

ios - 我如何在核心数据中保存图像然后检索它?使用 swift

ios - 如何从字符串中获取 NSDate 而不将其转换为 UTC

swift - 如何声明具有结构值的字典