Установка строки objectAtKey из NSDictionary в NSString в отдельном классе - PullRequest
0 голосов
/ 15 сентября 2011

Я получил информацию из URL (JSON);Я легко заполняю свой tableView текстом из моего словаря [aCategory objectAtKey:@"names"] для меток ячеек.Теперь, основываясь на имени ячейки (категории), я хочу отобразить другую таблицу, которая будет запрашивать последний URL, чтобы захватить оставшуюся часть текста на основе этой категории.

Итак, я хочу, чтобы идентификатор, который находится в [aCategory objectAtKey:@"ID"], был сохранен в строку и вставлен в URL в следующем viewController.В настоящее время я пытаюсь сгенерировать его, используя метод автоматически сгенерированного набора, чтобы заполнить идентификатор NSString * в целевом viewcontroller;когда я звоню [newView setID: [aCategory objectAtKey:@"ID"].

NSString ID моего нового контроллера представления говорит, что он не пустой, но когда я пытаюсь проверить, действительно ли это "1" или "2", я получаю что-то вроде /p2002 или что-то.Тем не менее, в исходном классе, если я скажу cell.detailLabelText.text = [aCategory objectAtKey:@"ID"];, метки правильно показывают «1», «2», «3» .. «14» и т. Д.

ТАК, как я могу это получить?Идентификатор этого ключа в моем другом классе viewcontroller?

Я знаю, что это допустимая строка NSCFString, потому что я протестировал его как с isClass, так и с detailLabelText.

ячейки.

1 Ответ

0 голосов
/ 15 сентября 2011

Мне нужно больше подробностей, чтобы быть уверенным в этом, но пара замечаний ...

NSString - это то, что называется кластером классов, что в основном означает, что на самом деле это набор из нескольких классов различных классов, между которыми базовая структура переключается ... это означает, что если вы проверяете его с помощью

isKindOfClass:

Возможно, вы не получаете ожидаемых результатов. Проверьте документацию для isKindOfClass: в NSObject.

Однако я не уверен, есть ли о чем беспокоиться. Причиной, по которой вы видите что-то вроде '\ p2002' (может ли первая буква быть буквой u?), Может быть просто текущее представление строки. Иногда, когда устройство хранит содержимое строки в памяти, оно не выглядит точно как «1» или «2». Это не означает, что есть проблема: это просто означает, что на более глубоком уровне способ хранения строки в памяти имеет другую форму. Вот почему ваш ярлык может сказать «2», но переменная при проверке в памяти выглядит иначе.

(Я предполагаю, что, поскольку вы работаете с JSON, строка закодирована в форме с именем UTF-8.) Дело в том, что ничто не может ошибаться вообще.

Вопрос в том, правильно ли загружается ваш новый контроллер представления? Может быть, в viewDidLoad: метод вашего нового контроллера представления, если вы запускаете что-то в этой строке:

NSLog(@"%@", stringID);

Это выведет значение stringID на консоль. Если это число совпадает с номером метки ячейки таблицы в предыдущем контроллере представления, все должно быть правильно передано.

...