开发者社区> 问答> 正文

使用TableView分组显示plist内容报错 400 请求报错 

我是一个初学者,在练习使用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;
}

展开
收起
kun坤 2020-05-29 10:14:28 528 0
1 条回答
写回答
取消 提交回答
  • 你Contacts.plist中的key对应的object里有不是数组对象而是字典对象。 请检查你的Contacts.plist中的所有数据,确保[contactTitles objectForKey:group]获取到的数据都是数组######谢谢,果然是这样.... 文本编辑打开,发现里面多了一个dict.... 纠结了这么久,见效了. 再次感谢!

    2020-05-29 14:20:52
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载