как получить значения из объекта NSData - PullRequest
0 голосов
/ 29 февраля 2012

Я делаю запрос к моей базе данных и в ответ получаю набор данных, которые я помещаю в объект nsdata, используя методы NSURLConnection, например, так.

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    // Append the new data to receivedData.
    // receivedData is an instance variable declared elsewhere.
    [receivedData appendData:data];
}

Данные в объекте NSData имеют значение идентификатора для каждого раздела кода, представленное переменной UInt16 1 - что угодно ..

Я хотел бы знать, как я могу определить эти значения и начать декодирование данных.

Мой план - создать класс с методом, в который я передаю данные из метода, описанного выше. Затем метод приема разделит пакет на части и, скорее всего, передаст каждую секцию соответствующему методу, который затем сможет декодировать его и / или выполнить его проверку и т. Д. И т. Д.

Я просто не уверен, как определить те ведущие значения, которые являются представлениями данных переменных UInt16.

Надеюсь, у меня был какой-то смысл, если бы вы могли сделать несколько предложений или пример кода, который был бы потрясающим!

1 Ответ

1 голос
/ 29 февраля 2012

Учитывая структуру данных, вы должны проанализировать их вручную. Используйте -[NSData getBytes:range:] в цикле, чтобы перебрать данные и извлечь компоненты. Не забудьте использовать семейство макросов NSSwap...ToHost() для преобразования закодированных чисел в собственный порядок байтов.

Изменить: поиск документации и заголовков для NSSwapLittleIntToHost() и NSSwapBigIntToHost(). Это две из многих функций, которые преобразуют представление внешних двоичных чисел в собственный порядок байтов ЦП и наоборот.

...