首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSKeyedArchiver将NSCache写入磁盘

使用NSKeyedArchiver将NSCache写入磁盘
EN

Stack Overflow用户
提问于 2016-02-18 03:34:48
回答 1查看 1.1K关注 0票数 1

我需要一个字典来保存有限数量的对象,这些对象需要通过互联网连接创建,并缓存它们,这样当没有互联网连接时,它们仍然可用。

NSCache似乎很理想,因为我可以指定一个限制,或者它会根据可用内存自动调整自身,但我不能将对象保存到NSUserDefaults。如果我尝试这样的缓存,这在NSDictionary上是有效的

代码语言:javascript
复制
+ (void)cacheUsers:(NSCache *)users {
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:users];
    [[NSUserDefaults standardUserDefaults] setObject:data forKey:kCacheID];
}

应用程序崩溃:[NSCache encodeWithCoder:]: unrecognized selector sent to instance

是否应该在缓存之前将NSCache转换为NSDictionary,然后在检索时再次转换?或者有没有更好的方法来保存NSCache

EN

回答 1

Stack Overflow用户

发布于 2016-02-18 03:54:14

我假设您正在尝试保存一个带有自定义类对象的数组,因为您需要在自定义类中实现名为“encodeWithCoder”的方法,以便将其保存到NSUserDefault。

对我来说,你不需要使用NSCache。

请参阅下面的相关答案:https://stackoverflow.com/a/2315972/1982185

祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35466059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档