我有一个 NSDictionary
和 Int
变量:
mainDic = @{@1:@"1.jpg",@2:@"2.jpg"};
indexpath.row = 2;
我想使用 indexpath.row
这样访问对象2的价值:
cell.pic.image = [UIImage imageNamed:mainDic[indexpath.row]];
但它不起作用。 ...
答案 0 :(得分:1)
您的钥匙应位于左侧,而不是右侧。我认为还有拼写错误:@" 2,jpg"。但应该是@" 2.jpg"。 但通常使用数组而不是NSDictionary。因为我记得整数不能成为一把钥匙。
答案 1 :(得分:1)
mainDic = @{@1:@"1.jpg",@2:@"2.jpg"};
将NSNumbers用于此词典中的键。
@ 1会创建一个NSNumber
,它只是[NSNumber numberWithInt:1]
的快捷方式。
所以你的词典看起来像这样:NSDictionary <NSNumber *, NSString *> *mainDic;
。
NSIndexPath的row属性是只读整数。 您尝试使用整数访问NSDictionary,而不是使用NSNumber作为键,正确的调用应该是:
NSNumber *row = [NSNumber numberWithInteger:indexpath.row];
cell.pic.image = [UIImage imageNamed:mainDic[row]];
但我只是使用一个数组,它更容易从它访问图像。
NSArray *images = @[@"1.jpg",
@"2.jpg",
@"3.jpg"];
cell.pic.image = [UIImage imageNamed:images[indexpath.row]];