我在'界面中定义了一个数组。因此,视图控制器的一部分:
@property (strong, nonatomic) NSArray *images;
我在viewDidLoad中加载它:
self.images = @[[UIImage imageNamed:@"sophia1_1x"],
[UIImage imageNamed:@"sophia2_1x"],
[UIImage imageNamed:@"sophia3_1x"],
[UIImage imageNamed:@"sophia4_1x"],
[UIImage imageNamed:@"sophia5_1x"],
[UIImage imageNamed:@"sophia6_1x"]];
然后我想从数组中将图像设置在UIImage中。我可以硬编码图像的名称,它工作正常:
self.currentImage.image = [UIImage imageNamed:@"sophia4_1x.png"];
但是如果我试图从数组中获取值:
self.currentImage.image = [UIImage imageNamed:self.images[row]];
我得到"无法识别的选择器发送到实例"
我只是......不要...... 明白了!
答案 0 :(得分:4)
您的数组包含UIImage对象,而不是字符串,因此您无法将self.images[row]
传递给imageNamed:
方法。要获取图像,只需访问数组中所需的行
self.currentImage.image = self.images[row];
答案 1 :(得分:0)
您的意思是保存字符串数组,然后使用字符串加载图像吗?
如果是这样,您的代码将如下所示:
@property (strong, nonatomic) NSArray *imageNames;
加载它的代码:
self.imageNames = @[
@"sophia2_1x",
@"sophia3_1x",
@"sophia4_1x",
@"sophia5_1x",
@"sophia6_1x"
];
然后你加载图片的代码就可以了:
self.currentImage.image = [UIImage imageNamed:self.imageNames[row]];
如果您真的想要一系列图像,那么relmar的解决方案会为您提供。