我正在设置我的Indexed Uitableview以进行快速滚动的最后阶段,一旦我完成了这个,我将写下我的经验,希望能帮助那些试图获得与我自己相同结果的人。 但是我有最后一步将我的NSDictionary值传递到我的tableviewcells文本标签中。我只是不知道该怎么做,希望有人可以给我一个例子。
这就是我的字典看起来像
Dictionary: {
H = (
Honda,
Honda,
Honda,
Honda,
Honda,
Honda,
Honda
);
M = (
Mazda,
Mazda,
Mitsubishi,
Mitsubishi,
Mitsubishi,
Mitsubishi,
Mitsubishi,
Mitsubishi
);
N = (
Nissan,
Nissan,
Nissan,
Nissan,
Nissan,
Nissan,
Nissan
);
T = (
Toyota,
Toyota,
Toyota
);
我已经尝试了一些随机的东西,但是对于将NSDictionary传递给uitableview几乎一无所知...这是我在tableView中尝试过的东西:cellForRowAtIndexPath:
//..
[[cell textLabel] setText:[[arraysByLetter objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]];
return cell;
//..
arraysByLetter是我的NSDictionary
并且代码行给了我这个警告 'NSMutableDictionary'可能无法响应'objectAtIndex:'
任何帮助将不胜感激
UPDATE :::
我找到了一个很好的例子,说明如何使用像这样创建的NSString填充uitableview单元格文本标签
NSString *value = [arraysByLetter objectForKey:[[arraysByLetter allKeys] objectAtIndex:indexPath.row]];
cell.textLabel.text = value;
arraysByLetter是我的排序NSDictionary,但这导致程序收到信号“EXC_BAD_ACCESS”不确定原因,但试图解决它。
答案 0 :(得分:1)
您似乎将NSMutableDictionary
与NSMutableArray
混淆。前者通过key
访问对象,通常为NSString
s,后者按NSUIntegers
访问。
例如,如果dict
是NSMutableDictionary
,那么您可以调用
[dict objectForKey:@"myKey"];
如果array
是NSMutableDictionary
,那么您可以致电
[array objectAtIndex:0];
对于您提供的示例,您有一个NSDictionary
,其中objectForKey:
是NSArray
。因此,您应该调用类似
[[dict objectForKey:@"H"] objectAtIndex:0];
输出"Honda"
或
[[dict objectForKey:@"M"] objectAtIndex:2];
输出"Mitsubishi"
。
答案 1 :(得分:0)
您正在字典上使用数组方法调用。在字典中,您可以使用与该对象(成员)关联的键来获取其成员。在数组中,通过使用索引到数组中来获取数组的成员。
您正在使用需要密钥的索引。