我有10个名为0.png到9.png的图像,而且随机发生器给我一个这10个之间的随机数。
根据随机客户给我的数量,我想将UIImageView
设置为该图像。
我的想法就是这样做:
[image setImage:[UIImage imageNamed: @"%d.jpg", currentQuestion]];
当我使用随机数设置NSLog
的文字时,这可以正常工作:
NSLog(@"Some Text %d", currentQuestion);
然而,当我尝试设置图像时,我收到此错误:
方法调用的参数太多,除了1,有2个
答案 0 :(得分:2)
首先,正如@Azat所说,您应该使用一个特定的NSString
作为imageNamed:
方法的参数。
此外,更好的方法是使用NSArray
来存储这些候选图像的名称,如:
NSArray *imageNames = @[@"1.png", @"2.png", @"3.png"];
然后,您可以使用随机数作为图像名称数组的索引,而不是自己构建图像名称。
[image setImage:[UIImage imageNamed:imageNames[currentQuestion]]]
这样做的一个好处是,即使更改了imaged的名称,也不需要修改代码,只需更改图像名称数组中的名称。
答案 1 :(得分:1)
您应该使用以下代码:
[image setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", currentQuestion]]];
+imageNamed:
只接受一个参数,你应该将其构造为格式化字符串,而NSLog
可以使用可变数量的参数
另外,您说0.png
到9.png
,但使用jpg
构建图像名称。请检查分机