- [__ NSDictionaryM objectAtIndex:]:发送到实例的无法识别的选择器

时间:2015-01-28 05:49:38

标签: ios objective-c xcode nsmutabledictionary

我在SO上搜索了所有可能的组合和答案,但对我没有多大帮助。 所有内容仅与UITableView相关。

我正在做的是从服务器获取测验。 测验包含章节,每个部分包含问题。 所以流程是这样的。 Quiz->本条>问题

我正在获得JSON之类的 第一次测验总数, 然后特别是测验的部分总数 和特定部分的课题总数。

我在Section数组中存储Sections并根据section array count解析问题。 但我的应用程序正在崩溃,我从部分数组中获取问题的对象并将其存储在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 个答案:

答案 0 :(得分: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;
}