2015-05-17 79 views
-1

我有10张图片命名为0.png到9.png,也是一个随机化给我这10设置特定图像的UIImageView

和幸福之间的随机数取决于数量的随机化给了我,我想设置我的UIImageView与该图像。

我的想法是做这样的:

[image setImage:[UIImage imageNamed: @"%d.jpg", currentQuestion]]; 

由于这工作得很好,当我用随机数这样的设置NSLog全文:

NSLog(@"Some Text %d", currentQuestion); 

然而,当我试图设置图像我得到这个错误:

Too many arguments to method call, excepted 1, have 2

回答

1

你应该使用下面的代码instea d:

[image setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", currentQuestion]]]; 

的事情,+imageNamed:只有一个参数,你应该建立它作为格式化字符串,而NSLog可以采取可变数目的参数

而且你说你有0.png9.png但构建图像名字使用jpg。请检查分机号码

2

首先,如@Azat所说,您应该使用一个特定NSString作为imageNamed:方法的参数。

此外,一个更好的方式来实现这一目标可以使用NSArray来存储这些候选图像的类似名称:

NSArray *imageNames = @[@"1.png", @"2.png", @"3.png"]; 

然后,你可以使用随机数作为图像名称数组的索引而不是自己构建图像名称。

[image setImage:[UIImage imageNamed:imageNames[currentQuestion]]] 

一个做这种方式的好处是,你不需要即使成像的名字改为修改代码,只图像名称数组中更改名称。

相关问题