我是一个初学者,在练习使用TableView的时候,用plist储存了一个联系人列表.(分了3个类,里面各有一些联系人. 运行的时候报错 [_NSCFDictionnary objectAtIndex:] unrecognized selector sent to instance... 查资料说,是因为调用了不存在的函数,可是 我用objectAtIndex: 的是个NSArray啊,报错行见下面注释. 快2小时了,求大牛,好心人告知,谢谢! .h 里定义了contactTitles,groups viewDidLoad里面
NSString *path=[[NSBundle mainBundle]pathForResource:@"Contacts" ofType:@"plist"]; NSDictionary * dict=[[NSDictionary alloc]initWithContentsOfFile:path]; self.contactTitles=dict; NSArray *array=[[contactTitles allKeys]sortedArrayUsingSelector:@selector(compare:)]; self.groups=array;.m中显示cell的代码
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier=@"Contacts"; UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if(cell==nil) { cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } NSString *group=[groups objectAtIndex:[indexPath section]]; NSArray *contactSection=[contactTitles objectForKey:group]; NSString *cellValue=[contactSection objectAtIndex:[indexPath row]];//这里报错 cell.textLabel.text=cellValue; return cell; }
你Contacts.plist中的key对应的object里有不是数组对象而是字典对象。 请检查你的Contacts.plist中的所有数据,确保[contactTitles objectForKey:group]获取到的数据都是数组######谢谢,果然是这样.... 文本编辑打开,发现里面多了一个dict.... 纠结了这么久,见效了. 再次感谢!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。