Вы не показываете код, который фактически получает объект данных, а также не показывает какой-либо код, связанный с NSString.
Вы просто присваиваете строку (producedData
) своей переменной myData
? Это не создаст объект данных; с одной стороны, он не знал бы, какую кодировку использовать для кодирования символов строки в байтах, и, что более важно, копирует указатель из одной переменной в другую (что и делает myData = producedData
- переменные не содержат сами объекты , только указатели на них) не меняет ничего о том, на что указывает указатель. Объект останется строкой, даже если вы сказали компилятору, что myData
будет указывать на объект данных. Компилятор должен предупреждать вас об этом; вам следует учесть и исправить эти предупреждения.
myData
определенно не является объектом данных; если бы это было так, его описание само было бы шестнадцатеричным дампом. Это либо строка, либо словарь.
Вывод, который вы показали, соответствует синтаксису, который NSDictionary использует для описания себя. С другой стороны, объект может быть строкой, содержащей такое описание. (Это последний случай, который вы ожидаете.)
Если у вас есть словарь: все готово! Объект уже проанализирован.
Если у вас есть строка: Отправьте ей сообщение propertyList
, которое проанализирует строку как список свойств и вернет любое значение, представленное в нем, которое в данном случае будет словарем.