Разбор NSString для получения данных - PullRequest
1 голос
/ 02 сентября 2010

У меня есть этот код ...

NSData* myData = producedData;
NSLog(@"Contents of myData: %@", myData);

Журнал печатает

{ "id" = ""; "level" = "level_1"; «ручка» = тест; }

Как мне получить значения для идентификатора и уровня и обработать это? Исходные данные - NSString *.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 сентября 2010

Вы не показываете код, который фактически получает объект данных, а также не показывает какой-либо код, связанный с NSString.

Вы просто присваиваете строку (producedData) своей переменной myData? Это не создаст объект данных; с одной стороны, он не знал бы, какую кодировку использовать для кодирования символов строки в байтах, и, что более важно, копирует указатель из одной переменной в другую (что и делает myData = producedData - переменные не содержат сами объекты , только указатели на них) не меняет ничего о том, на что указывает указатель. Объект останется строкой, даже если вы сказали компилятору, что myData будет указывать на объект данных. Компилятор должен предупреждать вас об этом; вам следует учесть и исправить эти предупреждения.

myData определенно не является объектом данных; если бы это было так, его описание само было бы шестнадцатеричным дампом. Это либо строка, либо словарь.

Вывод, который вы показали, соответствует синтаксису, который NSDictionary использует для описания себя. С другой стороны, объект может быть строкой, содержащей такое описание. (Это последний случай, который вы ожидаете.)

Если у вас есть словарь: все готово! Объект уже проанализирован.
Если у вас есть строка: Отправьте ей сообщение propertyList, которое проанализирует строку как список свойств и вернет любое значение, представленное в нем, которое в данном случае будет словарем.

0 голосов
/ 02 сентября 2010

Это JSON? Используйте JSON-анализатор Стига Браутасета http://code.google.com/p/json-framework/

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