我需要一个字典来保存有限数量的对象,这些对象需要通过互联网连接创建,并缓存它们,这样当没有互联网连接时,它们仍然可用。
NSCache似乎很理想,因为我可以指定一个限制,或者它会根据可用内存自动调整自身,但我不能将对象保存到NSUserDefaults。如果我尝试这样的缓存,这在NSDictionary上是有效的
+ (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
发布于 2016-02-18 03:54:14
我假设您正在尝试保存一个带有自定义类对象的数组,因为您需要在自定义类中实现名为“encodeWithCoder”的方法,以便将其保存到NSUserDefault。
对我来说,你不需要使用NSCache。
请参阅下面的相关答案:https://stackoverflow.com/a/2315972/1982185
祝好运!
https://stackoverflow.com/questions/35466059
复制相似问题