我即将在我的应用上实现缓存,我想已经有很好的模式如何做到这一点。 我想我将使用Core Data,但我想知道最好的方法。 我发现的大多数文档仅用于核心数据教程。 我所做的是生成NSManagedObject但是我还使用了一个类似的类和我的附加方法,这将与未来的字段分离,从而保持生成的一个独立。 是否有一些关于使用Core Data处理对象缓存的最佳方法的教程? 提前谢谢。
答案 0 :(得分:2)
在使用Core Data时,为了使手写代码与机器生成的代码分开,请查看mogenerator。非常有用。
就缓存而言,Core Data非常不错,并且通过明智地使用批处理错误和预取,您可以相当轻松地管理到持久存储的行程次数。故障机制在我的经验中运作良好,因此在核心数据时要小心过早优化。
advice Apple gives here很好,特别是使用分析工具来查看应用程序中无效的部分,然后专门解决这个问题,而不是花时间编写代码来解决问题。存在。
答案 1 :(得分:1)
在iOS上不鼓励缓存到文件系统。使用Core Data进行永久存储,而不是临时缓存。
Apple提供了两种内存缓存功能。
NSURLCache
使用网址加载系统(NSURLConnection
和朋友)缓存响应。只需创建一个新实例,然后使用+[NSURLCache setSharedURLCache:]
进行设置。
NSCache
用于缓存任何对象。只需创建一个实例,使用像普通字典集合这样的键添加和获取缓存对象。支持计数和成本限制,以及使用NSDiscardableContent
协议锁定缓存对象。
如果您希望使用托管对象,您还可以使用内存中的NSPersistentStore
作为核心数据,这些托管对象只能用于执行应用程序。