2012-04-18 77 views
1

我想使用NSCoding保存/加载我的类的实例。每个班级应该有一个单独的缓存时间/时间来生活。当应用程序启动时,我希望我的类的实例可以从缓存中加载,如果它未过期或以其他方式正常创建的话。使用NSCoding缓存文件的框架

这个问题必须被解决了数百次....

是否有这样一个良好的框架,或者我应该推出自己的?

回答

1

需要明确的是,你可以保存或装载对象,不,使用NSCoding

我不知道这样做的框架。您可以使用文件修改时间作为缓存时间,也可以将其保留在单独的数据库中。如果它不是很多不同的类,则可以使用NSUserDefaults作为单独的数据库。每个班级只需编码即可知道自己的生活时间。

+0

我结束了自己的解决方案。 https://gist.github.com/2414490 – Robert 2012-04-18 15:54:52

2

也许你可以试试 NSCache NSCache不符合NSCoding协议,所以你不能存档/取消存档缓存。

NSCache对象是类似集合的容器或缓存,它存储键值对,类似于NSDictionary类。开发人员经常会使用缓存来临时存储创建昂贵的瞬态数据的对象。重用这些对象可以提供性能优势,因为它们的值不必重新计算。但是,这些对象对应用程序并不重要,如果内存不足,可以将其丢弃。如果被丢弃,它们的值必须在需要时重新计算。

+0

'NSCache'用于进程在生命周期内的内存缓存。问题是关于在启动之间存储对象。 (“当应用程序启动时...”) – 2012-04-18 11:54:18

+0

您可以将NSCache对象归档并在启动时或在输入Background时加载/保存对象。 – CarlJ 2012-04-18 11:55:32

+0

'NSCache'不符合'NSCoding'或有任何其他的存档方式。 – 2012-04-18 12:19:47