Мне нужно больше подробностей, чтобы быть уверенным в этом, но пара замечаний ...
NSString - это то, что называется кластером классов, что в основном означает, что на самом деле это набор из нескольких классов различных классов, между которыми базовая структура переключается ... это означает, что если вы проверяете его с помощью
isKindOfClass:
Возможно, вы не получаете ожидаемых результатов. Проверьте документацию для isKindOfClass: в NSObject.
Однако я не уверен, есть ли о чем беспокоиться. Причиной, по которой вы видите что-то вроде '\ p2002' (может ли первая буква быть буквой u?), Может быть просто текущее представление строки. Иногда, когда устройство хранит содержимое строки в памяти, оно не выглядит точно как «1» или «2». Это не означает, что есть проблема: это просто означает, что на более глубоком уровне способ хранения строки в памяти имеет другую форму. Вот почему ваш ярлык может сказать «2», но переменная при проверке в памяти выглядит иначе.
(Я предполагаю, что, поскольку вы работаете с JSON, строка закодирована в форме с именем UTF-8.) Дело в том, что ничто не может ошибаться вообще.
Вопрос в том, правильно ли загружается ваш новый контроллер представления? Может быть, в viewDidLoad: метод вашего нового контроллера представления, если вы запускаете что-то в этой строке:
NSLog(@"%@", stringID);
Это выведет значение stringID на консоль. Если это число совпадает с номером метки ячейки таблицы в предыдущем контроллере представления, все должно быть правильно передано.