1

我需要一个字典来保存需要通过 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

4

1 回答 1

0

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

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

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

祝你好运!

于 2016-02-17T19:54:13.853 回答