我在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
我的代码出了什么问题, 我尝试获取数组然后键值对,但没有帮助。 请指导我。
提前致谢。
答案 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;
}