我的服务最多返回 500 个对象,我注意到当数据量超过 60 个对象时,我的 iphone 应用程序崩溃了。为了解决这个问题,我正在运行一个只返回前 40 个结果的查询,但这比只返回整个数据要慢
- 最佳实践是什么?如何检索更多对象?
- iphone中分配给应用程序的最大内存量是多少,有没有办法扩展它?
- 我应该从服务器检索多少对象
- NSCache 中可以存储多少?
我的服务最多返回 500 个对象,我注意到当数据量超过 60 个对象时,我的 iphone 应用程序崩溃了。为了解决这个问题,我正在运行一个只返回前 40 个结果的查询,但这比只返回整个数据要慢
也许您应该使用 NSData 而不是 NSCache 从您的服务中检索数据。
NSCache 用于临时对象,但是 NSData 用于在应用程序之间移动数据(从您的服务到您的应用程序)
Apple 对 NSCache 的描述:
NSCache 对象是一个类似于集合的容器或缓存,用于存储键值对,类似于 NSDictionary 类。开发人员经常合并缓存来临时存储具有创建成本高昂的瞬态数据的对象。重用这些对象可以提供性能优势,因为不必重新计算它们的值。但是,这些对象对应用程序并不重要,如果内存紧张,可以将其丢弃。如果丢弃,则必须在需要时重新计算它们的值。
Apple 对 NSData 的描述:
*NSData 及其可变子类 NSMutableData 为字节缓冲区提供数据对象、面向对象的包装器。数据对象让简单分配的缓冲区(即没有嵌入指针的数据)具有 Foundation 对象的行为。
NSData 创建静态数据对象,而 NSMutableData 创建动态数据对象。NSData 和 NSMutableData 通常用于数据存储,在分布式对象应用程序中也很有用,其中数据对象中包含的数据可以在应用程序之间复制或移动。*