如何在iOS中从服务器接收和存储二进制数据?

时间:2012-03-14 15:13:27

标签: iphone ios arrays buffer

我正在开发iPhone应用程序(iOS 5)。我要做的是使用我从服务器上发现的二进制数据创建一个地图。如果服务器有可用的字节,我将它们读入缓冲区:uint8_t [1024]。然后我解析这些数据并从中创建对象(例如,包含经度和纬度点的路径),但这些对象通常比我的缓冲区大。在模拟器上,这不是一个大问题,因为我有足够的内存将它们存储到可变数组中。

但是我如何处理这个以使我的应用程序对设备安全?我应该为iOS设备使用什么数组大小?

我希望我的问题是可以理解的。

2 个答案:

答案 0 :(得分:0)

您是否考虑过使用NSData(或其可变子类NSMutableData)?

这些为字节缓冲区提供了一个对象包装器,可以使用appendData:选择器任意增长。

来自documentation

  

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

那就是说,如果你只是按千字节的顺序分配,你就不会遇到内存问题。

答案 1 :(得分:0)

您可以使用NSMutableArray暂时存储数据并根据需要扩展其大小。

希望这有帮助。