2013-04-27 2 views
0

я получаю следующее сообщение об ошибке whenI запустить мое приложениеСинтаксический JSON данные в массив

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
    reason: '- [COViewController fetchAppNetData]: unrecognized selector 
    sent to instance 0x716d200' 

В принципе я не могу найти, как разобрать данные JSON в моем массиве. Структура моей JSON выглядит следующим образом

{ 

    "meta": {}, 

    "data": [] 

} 

Я знаю, что meta представляет собой словарь и data является массивом. Но когда я пытаюсь использовать следующий фрагмент кода я получаю выше ошибки

- (void)fetchAppNetData:(NSData *)responseData 
{ 
//parse JSON data 
NSError *error; 
NSDictionary* appNet_json = [NSJSONSerialization 
    JSONObjectWithData:responseData options:kNilOptions error:&error]; 
NSArray* appNetTimeline = [[appNet_json objectForKey:@"meta"] 
    objectForKey:@"data"]; 
NSLog(@"AppNet Timeline : %@",appNetTimeline); 
} 

Как я могу убедиться, что я могу определить структуру JSON должным образом в следующий раз, так что я могу избежать такого рода проблем? Мне очень жаль придумывать такие сомнения

+0

Ваша ошибка не имеет ничего общего с разбором JSON. 'fetchAppNetData' не определен в объекте, который вы пытаетесь использовать для его вызова. Вы даже не попадаете в метод. –

+0

Я зову определенно назвав его в 'viewdidLoad' ' [себе performSelectorOnMainThread: @selector (fetchAppNetData) withObject: appNetData waitUntilDone: YES]; ' – BarryVenom

+0

ли вы заметили': 'на конец этого имени селектора? И я тоже. –

ответ

3

Ошибка не имеет ничего общего с содержанием метода -fetchAppNetData:. Этот метод даже не вызван.

Ошибка заключается в том, что вы пытались вызвать метод этого имени для объекта, который не отвечает на него. Вы отправили это сообщение экземпляру класса COViewController, но это, очевидно, не тот класс, который реализовал метод, который вы опубликовали.

+0

Пойманная ошибка. Я забыл добавить ':' в конце 'fetchAppNetData'. Вот скорректированный код '[self performSelectorOnMainThread: @selector (fetchAppNetData :) withObject: appNetData waitUntilDone: YES]; - BarryVenom 57 секунд назад отредактируйте ' – BarryVenom

+0

Огромное вам спасибо :) – BarryVenom

+0

@BarryVenom - Почему вы делаете performSelector или просто вызываете метод? –

Смежные вопросы