У меня есть NSDictionary, который получает данные от JSON, и теперь я хочу скомпилировать эти данные и заполнить tableView
. Однако я сталкиваюсь с непредсказуемыми препятствиями. Моя задача - создать массивы и методы с правильными значениями (массивы изображений, текстовых значений и т. Д.). В настоящее время я использую AFNetworking. В одном методе я получаю JSON данные:Заполнение массива NSDictionary
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
self.dataDict = (NSDictionary*)responseObject;
Для попытки создать четкий код я хочу, чтобы отделить другие методы, с помощью функций. Я пробовал:
-(void)setImageView{
if (self.dataDict){
self.dataDictArray = [[self.dataDict valueForKey:@"id"] objectAtIndex:0];
Затем, когда я хочу использовать NSLog
я сделать следующее:
NSLog(@"Check the array %@", [self.dataDictArray objectAtIndex:0]);
Это бросить мне ошибку: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber objectAtIndex:]: unrecognized selector sent to instance
Очевидно, это означает, что нет ни одного объекта в индекс 0 в моем массиве. Но когда я сделал:
NSLog(@"Check the array %@", self.dataDictArray);
Он показал мне в консоли, что мой массив заполнения с одним «ID» номер 3, который на самом деле первый идентификатор в NSDictionary
.
Я хочу понять, как исправить правильные массивы, содержащие данные из NSDictionary, и что я сделал неправильно?
Response obj. выглядеть следующим образом:
(
{
id = 3;
dog = "\U041a\U0430\U043a\U043e\U0439-\U0442\U043e \U043c\U0443\U0434\U0430\U043a \U043d\U0430\U043a\U0440\U0443\U0442\U0438\U043b";
image = "cute_dog/116.jpg";
score = 586;
},
{
id = 115;
dog = "\U0422\U0430\U043d\U044f \U041a\U043b\U044e\U043a\U0432\U0438\U043d\U0430";
image = "cute_dog/115.jpg";
score = 481;
},
т.д.
Спасибо!
Можете ли вы поместить часть 'responseObject'?Сделайте NSLog (@ "% @", responseObject); – iphonic
@iphonic edit применяется, пожалуйста, посмотрите –
См. Мой ответ http://stackoverflow.com/a/28764205/790842, это очистит ваши сомнения. – iphonic