我应该从服务器检索多少个对象,哪些可以存储在NSCache中?

时间:2014-03-15 15:19:43

标签: python iphone nscache memory-optimization

我的服务最多可以返回500个对象,我注意到当数据量超过60个对象时,我的iphone应用程序崩溃了。解决此问题我正在运行一个查询,只返回前40个结果,但这比返回整个数据慢

  1. 最佳做法是什么,如何检索更多对象?
  2. 在iphone中分配给应用程序的最大内存量是多少?有没有办法扩展它?
  3. 我应该从服务器检索多少个对象
  4. NSCache中可以存储多少个?

1 个答案:

答案 0 :(得分:0)

也许您应该使用NSData从服务而不是NSCache中检索数据。

NSCache用于临时对象,但NSData用于在应用程序之间移动数据(从您的服务到应用程序)

Apple对NSCache的描述:

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

Apple对NSData的描述:

* NSData及其可变子类NSMutableData为字节缓冲区提供数据对象,面向对象的包装器。数据对象允许简单分配的缓冲区(即没有嵌入指针的数据)采用Foundation对象的行为。

NSData创建静态数据对象,NSMutableData创建动态数据对象。 NSData和NSMutableData通常用于数据存储,在分布式对象应用程序中也很有用,数据对象中包含的数据可以在应用程序之间复制或移动。*