我收到上述错误并且不知道为什么,因为我在另一个示例中实现了相同的代码。 “services”是我的NSMutableArray,“service name”是带有Tag 2的表视图上的标签。在viewdidload中,我用对象填充服务数组。
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"servicesCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
UILabel *servicesName;
UILabel *nrofService;
if(tableView == self.servicetable)
{
servicesName = (UILabel*) [cell viewWithTag:2];
servicesName.text = [[services objectAtIndex:0] objectAtIndex:indexPath.row];
}
return cell;
}
答案 0 :(得分:2)
问题出在以下一行:
servicesName.text = [[services objectAtIndex:0] objectAtIndex:indexPath.row];
检查[services objectAtIndex:0]
正在返回NSString
而不是NSArray
或NSMutableArray
。因此,您在objectAtIndex:indexPath.row
上调用NSString
会导致异常:
NSCFConstantString objectAtIndex无法识别的选择器发送到 实例
所以设置你的UILabel文本如下:
servicesName.text = [services objectAtIndex:indexPath.row];