我正在开发iPhone应用程序(iOS 5)。我要做的是使用我从服务器上发现的二进制数据创建一个地图。如果服务器有可用的字节,我将它们读入缓冲区:uint8_t [1024]。然后我解析这些数据并从中创建对象(例如,包含经度和纬度点的路径),但这些对象通常比我的缓冲区大。在模拟器上,这不是一个大问题,因为我有足够的内存将它们存储到可变数组中。
但是我如何处理这个以使我的应用程序对设备安全?我应该为iOS设备使用什么数组大小?
我希望我的问题是可以理解的。
答案 0 :(得分:0)
您是否考虑过使用NSData
(或其可变子类NSMutableData
)?
这些为字节缓冲区提供了一个对象包装器,可以使用appendData:
选择器任意增长。
NSMutableData
(及其超类NSData
)提供数据对象,面向对象的字节缓冲区包装器。数据对象允许简单分配的缓冲区(即没有嵌入指针的数据)采用Foundation对象的行为。
那就是说,如果你只是按千字节的顺序分配,你就不会遇到内存问题。
答案 1 :(得分:0)
您可以使用NSMutableArray
暂时存储数据并根据需要扩展其大小。
希望这有帮助。