2015-01-28 2 views
0

Я искал все возможные комбинации и ответы на SO, но мне не помог. Все они относятся только к UITableView.- [__ NSDictionaryM objectAtIndex:]: непризнанный селектор, отправленный в экземпляр

Что я делаю, так это то, что я делаю свой опрос с сервера. Quiz содержит разделы, и каждый раздел содержит вопросы. Итак, поток такой. Тест-> Section-> Вопрос

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

Я сохраняю разделы в разделах массива и анализируя вопросы в соответствии с количеством массивов разделов. но мое приложение разбивается на точку, где я получаю объект вопроса из массива разделов и сохраняю его в NSMutableDictionary с ключом для подключения к DTO.

Вот мой код ..

NSArray *sectionsA = [quizD objectForKey:@"sections"]; 
NSMutableArray *sectionDTOA = [[NSMutableArray alloc]init]; 
NSMutableArray* questionDTOA=[[NSMutableArray alloc] init]; 

for (int i =0; i<[sectionsA count]; i++) 
{ 
NSMutableDictionary* sectionD = [sectionsA objectAtIndex:i]; 
SectionDTO* sectionDTO = [[SectionDTO alloc]init]; 
[sectionDTO setSection_id:[sectionD objectForKey:@"sectionID"]]; 
[sectionDTO setSection_name:[sectionD objectForKey:@"sectionDTitle"]]; 
[sectionDTO setSection_description:[sectionD objectForKey:@"sectionDDesc"]]; 
[sectionDTO setSectionCutoff:[sectionD objectForKey:@"sectionCutoff"]]; 

// Код для установки Вопросов идет ниже, и после этого для петли закрыт ..

моего приложения врезаться в строке

NSMutableDictionary* sectionD = [sectionsA objectAtIndex:i]; 

Заявив, что

-[__NSDictionaryM objectAtIndex:]: unrecognized selector sent to instance 

Что не так в моем коде, Я попытался получить массив, а затем пару ключевых значений, но не помог. Прошу вас, пожалуйста.

Заранее спасибо.

ответ

1
NSArray *sectionsA = [quizD objectForKey:@"sections"]; 

возвращаемое значение должно быть NSDictionary, не NSArray.

После демо-код может быть, поможет вам:

NSArray *sectionsA = nil; 
id sectionsObj = [quizD objectForKey:@"sections"]; 
if([sectionsObj isKindOfClass:[Dictionary class]]){ 
    sectionsA = sectionsObj[@"keyForArray"]; //@"keyForArray" is the key for array 
} 
else if([sectionsObj isKindOfClass:[NSArray class]]){ 
    sectionsA = sectionsObj; 
} 
+0

Привет Simalone, спасибо это работает – Sagar