我需要一个字典来保存需要通过 Internet 连接创建的有限数量的对象并缓存它们,以便在没有 Internet 连接时它们仍然可用。
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
?