当我的服务返回多达500个对象时,我注意到当数据量超过60个对象时,我的iphone应用程序正在崩溃。为了解决这个问题,我正在运行一个查询,它只返回前40名的结果,但这比返回整个数据要慢
发布于 2014-03-18 14:22:54
也许您应该使用NSData从服务中检索数据,而不是NSCache。
NSCache用于临时对象,但是NSData用于在应用程序之间移动数据(从服务到应用程序)。
苹果对NSCache的描述:
NSCache对象是一个类似集合的容器或缓存,它存储键值对,类似于NSDictionary类。开发人员经常结合缓存来临时存储具有创建代价高昂的瞬态数据的对象。重用这些对象可以提供性能好处,因为它们的值不需要重新计算。但是,对象对应用程序并不重要,如果内存紧张,则可以丢弃对象。如果被丢弃,则必须在需要时重新计算它们的值。
苹果对NSData的描述:
*NSData及其可变子类NSMutableData为字节缓冲区提供数据对象、面向对象的包装器。数据对象允许简单分配的缓冲区(即没有嵌入指针的数据)承担基金会对象的行为。
NSData创建静态数据对象,NSMutableData创建动态数据对象。NSData和NSMutableData通常用于数据存储,在分布式对象应用程序中也很有用,其中数据对象中包含的数据可以在应用程序之间复制或移动。
https://stackoverflow.com/questions/22425631
复制相似问题