我想使用UITableView
中的数据填充NSMutableArray
,但它会出现异常。
例外:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDictionaryM isEqualToString:]: unrecognized selector sent to instance 0xa2ba880'
我的cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.textLabel.text = [callDetailArray objectAtIndex:indexPath.row];
[cell setAccessoryType: UITableViewCellAccessoryDisclosureIndicator];
return cell;
}
这是数组:
Array: (
{
callId = 3;
callKeyword = CALL100;
callName = "Call to All";
callNumber = 5908;
}
)
我想要发生的是UITaleView
中的单元格会在callId
,callKeyword
,callName
和callNumber
中显示数据。
答案 0 :(得分:3)
在CellDetailArray
Dictionary
数据NSMutableArray
中,您可以像贝娄一样从- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
NSMutableDictionary *d=(NSMutableDictionary*)[callDetailArray objectAtIndex:indexPath.row];
cell.textLabel.text =[d valueForKey:@"callName"];
[cell setAccessoryType: UITableViewCellAccessoryDisclosureIndicator];
return cell;
}
获取Deta: -
YourLable1.text =[d valueForKey:@"callId"];
如果你想在你的TableCell中显示所有四个值,必须创建具有四个UIable和Sate Value的customeCell,如: -
YourLable2.text =[d valueForKey:@"callKeyword"];
YourLable3.text =[d valueForKey:@"callName"];
YourLable4.text =[d valueForKey:@"callNumber"];
{{1}}
答案 1 :(得分:2)
您使用以下代码
cell.textLabel.text = [[callDetailArray objectAtIndex:indexPath.row]objectForKey:@"callName" ];
您正在尝试访问字典而不是字符串。 callDetailArray conatins字典数据。在字典中只有字符串可用,因此您必须使用objectForKey
来访问它