Как получать и хранить двоичные данные с сервера в iOS? - PullRequest
0 голосов
/ 14 марта 2012

Я работаю над приложением для iPhone (iOS 5).Что мне нужно сделать, так это создать карту, используя двоичные данные, которые я получаю с сервера.Если на сервере есть доступные байты, я считываю их в буфер: uint8_t [1024].Затем я анализирую эти данные и создаю из них объекты (например, путь, который содержит точки с долготой и широтой), но эти объекты часто больше моего буфера.На симуляторе это не большая проблема, потому что у меня достаточно памяти для хранения их в изменяемых массивах.

Но как мне это сделать, чтобы сделать мое приложение безопасным для устройства?Какой размер массива я должен использовать для устройств iOS?

Надеюсь, моя проблема понятна.

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

Вы можете использовать NSMutableArray, временно хранить данные и увеличивать их размер по мере необходимости.

Надеюсь, это поможет.

0 голосов
/ 14 марта 2012

Рассматривали ли вы вместо этого NSData (или его изменяемый подкласс NSMutableData)?

Они предоставляют объектную оболочку для байтовых буферов и могут быть произвольно увеличены с помощью селектора appendData:.

Из документации :

NSMutableData (и его суперкласс NSData) предоставляют объекты данных, объектно-ориентированные оболочки для байтовых буферов. Объекты данных позволяют простым выделенным буферам (то есть данным без встроенных указателей) принимать поведение объектов Foundation.

Тем не менее, если вы выделяете только порядка килобайт, вы вряд ли столкнетесь с проблемами памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...