-[__NSDictionaryM objectAtIndex:]:无法识别的选择器发送到实例
Posted
技术标签:
【中文标题】-[__NSDictionaryM objectAtIndex:]:无法识别的选择器发送到实例【英文标题】:-[__NSDictionaryM objectAtIndex:]: unrecognized selector sent to instance 【发布时间】:2015-01-28 05:49:38 【问题描述】:我在 SO 上搜索了所有可能的组合和答案,但对我没有多大帮助。
所有都只与UITableView
相关。
我正在做的是从服务器获取我的测验。 测验包含部分,每个部分都包含问题。 所以流量是这样的。 测验->部分->问题
我得到 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"]];
// 设置问题的代码在下面,然后 for 循环关闭..
我的应用程序崩溃了
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;
【讨论】:
以上是关于-[__NSDictionaryM objectAtIndex:]:无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章
ObjectA.Signal.connect(ObjectB.Slot) 不工作。我的理解正确吗?
Flink 使用另一个 ObjectA 流中的 List<ObjectB> 创建新的 ObjectB 流