如何在iOS中接收和存储来自服务器的二进制数据?
我正在为iPhone(iOS 5)的应用程序工作。 我必须做的是通过使用我从服务器获得的二进制数据创build一个地图。 如果服务器有可用字节,我将它们读入一个缓冲区:uint8_t [1024]。 然后我parsing这些数据,并从中创build对象(例如包含经度和纬度点的path),但这些对象通常比我的缓冲区大。 在模拟器上,这不是一个大问题,因为我有足够的内存将它们存储到可变数组中。
但是,我该如何处理这个问题,以使我的应用程序安全的设备? 我应该使用什么arrays大小的iOS设备?
我希望我的问题是可以理解的。
您可以使用NSMutableArray
并临时存储数据,并根据需要扩展其大小。
希望这可以帮助。
你有没有考虑使用NSData
(或其可变的子类NSMutableData
)呢?
这些为字节缓冲区提供了一个对象封装,并且可以使用appendData:
selector随意生长。
从文档 :
NSMutableData
(及其超类NSData
)为字节缓冲区提供数据对象,面向对象的包装器。 数据对象让简单分配的缓冲区(也就是没有embedded式指针的数据)承担基础对象的行为。
也就是说,如果你只是按照千字节的顺序进行分配,那么你不可能面对内存问题。