我正在将包含数据的json文件解析为具有不同自定义单元格的表视图。 在json文件中,我有不同类型的通道,如下所示:
[
{
text: "Text 1",
channel: "Channel1"
},
{
text: "Text 2",
channel: "Channel2"
},
{
text: "Text 3",
channel: "Channel3"
}
]
现在,当我尝试根据它的通道类型选择3个不同的自定义表格视图时,我收到一个奇怪的错误。以下是我的表现:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSDictionary *post = _posts[indexPath.row];
if (post[@"channel"][@"Channel1"]) {
Cell1 *cell = (Cell1*)[tableView dequeueReusableCellWithIdentifier:@"cell1" forIndexPath:indexPath];
// Configuring the cell...
return cell;
} else if (post[@"channel"][@"Channel2"]) {
Cell2 *cell = (Cell2*)[tableView dequeueReusableCellWithIdentifier:@"cell2" forIndexPath:indexPath];
// Configuring the cell...
return cell;
} else if (post[@"channel"][@"Channel3"]) {
Cell3 *cell = (Cell3*)[tableView dequeueReusableCellWithIdentifier:@"cell3" forIndexPath:indexPath];
// Configuring the cell...
return cell;
} else {
}
}
但是当我在模拟器上运行它时它会崩溃并给我这个错误信息:
-[__NSCFString objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7fa8bbf61540
2014-12-31 00:06:54.397 App[12767:2571748] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7fa8bbf61540'
我真的很感激解决方案或答案。
答案 0 :(得分:2)
此行不正确,
if (post[@"channel"][@"Channel1"]) {
post [@“channel”]返回一个字符串,例如“Channel1”,因此你不能在其上使用另一个下标([@“Channel1”]) - 这就是你得到那个错误的原因。
看起来你想要做的是,
if ([post[@"channel"] isEqualToString:@"Channel1"]) {