在ios中缓存数据的最佳选择

在ios中缓存数据的最佳选择,ios,cocoa-touch,nsdictionary,Ios,Cocoa Touch,Nsdictionary,我正试图找到在ios系统中缓存多个字符串值的最佳选项 到目前为止,我发现的两个是NSCache和NSDictionary,但是从我所读到的来看,如果你的记忆开始出现问题,NSCache将转储数据,坦白说,我并不完全理解NSDictionary 所以我想知道,如果有任何其他的选择,将适合我试图实现。。例如,可能使用核心数据/本地sqlite等?基本上,计划是从在线数据库中获取信息,将一些更重要的信息存储在手机上,这些信息只有在数据库的版本号(和int)发生更改时才会更新,我会刷新缓存并用新信息进行

我正试图找到在ios系统中缓存多个字符串值的最佳选项

到目前为止,我发现的两个是NSCache和NSDictionary,但是从我所读到的来看,如果你的记忆开始出现问题,NSCache将转储数据,坦白说,我并不完全理解NSDictionary


所以我想知道,如果有任何其他的选择,将适合我试图实现。。例如,可能使用核心数据/本地sqlite等?基本上,计划是从在线数据库中获取信息,将一些更重要的信息存储在手机上,这些信息只有在数据库的版本号(和int)发生更改时才会更新,我会刷新缓存并用新信息进行更新。

如果我理解正确,似乎每次服务器上有新版本时,您都希望下载新数据,并将其中一些存储到设备中

如果是这样,您可以将所有数据写入一个文件,并将其保存在手机上,然后稍后从该文件重新加载所需的数据。我个人喜欢使用它,因为它可以让您轻松地将数据存储到文件中,然后在需要时将其读回。您甚至不需要一次读取所有数据,只需要在什么时候读取所需的数据,这有助于解决内存问题。您还可以使您自己的自定义对象
NSCoding
兼容,这样存储数据就更容易了

我建议尝试
NSCoding
out。还有很多教程可以帮助你解决这个问题

而且,它们超级容易使用。你给它一个
对象
和一个
来存储它,当你想拿回
对象
时,只需给
NSDictionary
键,你就可以拿回该对象


希望有帮助

谢谢,伙计,我现在肯定要去看看NSCoding:)直到现在我都没听说过:p关于NSDictionary,我不太确定它是否符合我的需要,因为一旦我拥有了它们,我想用不同的方式对我的值进行排序。一天结束时,我将尝试每种方法,看看什么适合下注,因此我寻求不同的意见等等,谢谢你的回答。这是
nsdictionary
的最好部分,你只需要订购存储对象的
键。他们太棒了!关于这一点,例如,如果您想将保存的字符串的顺序更改为字母降序升序等。。NSDictionaries可以这样做吗?还是您只能按键进行排序?
NSDictionaries
只存储数据和相关的
NSDictionary
中没有“排序”,内存的所有排序都是为您完成的。因此,您只需将
存储在
NSArray
NSMutableArray
中,然后按您想要的方式订购
键。此外,你应该接受答案,以便其他人以后可以使用它!