如何在 Swift 中缓存双精度数组

2024-03-14

下面的代码

let cache = NSCache<NSString, [Double]>()

给我错误:

'NSCache' requires that '[Double]' be a class type

我怎样才能缓存双打数组 using String作为钥匙?


正如其他人提到的,NSCache 是 objC 类型,只能与 NSObject 子类一起使用。为此,您可以使用类型桥接到 NSArray 中。

let cache = NSCache<NSString, NSArray>()
let doubleArray: [Double] = [2.0, 3.0, 4.0]
cache.setObject(doubleArray as NSArray, forKey: "key")

// ...

if let doubleArray = cache.object(forKey: "key") as? [Double] {
    // Got my array back
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Swift 中缓存双精度数组 的相关文章

随机推荐