无法识别的数组对象选择器。

时间:2016-02-04 15:34:25

标签: objective-c unrecognized-selector nsimageview

数组中的NSImageView对象成为字符串。如何将它们转换为NSImageView以避免由最后一行生成无法识别的选择器错误?

NSArray *array = [NSArray arrayWithObjects: @"chip1”, @"chip2” nil],
for (id image in array) {
[image setImage: nil];
}

1 个答案:

答案 0 :(得分:0)

Objective-C中的@"..."表示法是创建NSString的简写。在上面的代码示例中,您创建了一个NSString的数组,这就是您在调用unrecognized selector时收到setImage:错误的原因。

假设chip1chip2NSImageView的实例,您应该执行以下操作:

NSArray *array = [NSArray arrayWithObjects:chip1, chip2, nil];

通过在定义数组时使用Objective-C Generics,您可以避免将来出现类似问题:

NSArray <NSImageView*>*array = [NSArray arrayWithObjects:chip1, chip2, nil];

如果您尝试将NSImageView以外的类添加到数组中,则会出现编译器错误。