Ios 使用NSCache缓存自定义类

Ios 使用NSCache缓存自定义类,ios,swift,caching,memory,Ios,Swift,Caching,Memory,我正在尝试缓存自定义类,以便在用户脱机时重新加载它。我是Swift的新手,所以我一直在四处寻找,大多数人都说使用NSCache。我在班上用过这种方法,但它不起作用 let cache = NSCache<NSString, ShopProfileModel>() let myObject: ShopProfileModel if let cachedVersion = cache.object(forKey: "CachedObject") { // use the cac

我正在尝试缓存自定义类,以便在用户脱机时重新加载它。我是Swift的新手,所以我一直在四处寻找,大多数人都说使用NSCache。我在班上用过这种方法,但它不起作用

let cache = NSCache<NSString, ShopProfileModel>()
let myObject: ShopProfileModel

if let cachedVersion = cache.object(forKey: "CachedObject") {
    // use the cached version
    myObject = cachedVersion
    print("Object has been cached")
} else {
    // create it from scratch then store in the cache
    myObject = self.shopProfileModel
    cache.setObject(myObject, forKey: "CachedObject")
    print("Object has not been cached")
}
let cache=NSCache()
让myObject:ShopProfileModel
如果让cachedVersion=cache.object(forKey:“CachedObject”){
//使用缓存版本
myObject=cachedVersion
打印(“对象已缓存”)
}否则{
//从头开始创建,然后存储在缓存中
myObject=self.shopProfileModel
setObject(myObject,forKey:“CachedObject”)
打印(“对象尚未缓存”)
}

它总是打印“对象尚未缓存”。知道为什么我的对象没有被缓存吗?

myObject是否为nil?@TusharSharma我刚刚检查过,它不是nil,您在哪里创建了ShopProfileModel的对象?我猜您正在执行setObject并保存一个类型。我的意思是尝试myObject=ShopProfileModel(),然后保存此对象。myObject是否为nil?@TusharSharma我刚刚检查过,它不是nil您创建ShopProfileModel对象的地方?我想您正在执行setObject并保存一个类型。我的意思是尝试myObject=ShopProfileModel(),然后保存这个对象。