从nsarray获取字符串值

时间:2014-10-12 22:19:21

标签: ios objective-c uiimage

我在'界面中定义了一个数组。因此,视图控制器的一部分:

@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]];

我得到"无法识别的选择器发送到实例"

我只是......不要...... 明白了!

2 个答案:

答案 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的解决方案会为您提供。