数组中的NSImageView对象成为字符串。如何将它们转换为NSImageView以避免由最后一行生成无法识别的选择器错误?
NSArray *array = [NSArray arrayWithObjects: @"chip1”, @"chip2” nil],
for (id image in array) {
[image setImage: nil];
}
答案 0 :(得分:0)
Objective-C中的@"..."
表示法是创建NSString
的简写。在上面的代码示例中,您创建了一个NSString
的数组,这就是您在调用unrecognized selector
时收到setImage:
错误的原因。
假设chip1
和chip2
是NSImageView
的实例,您应该执行以下操作:
NSArray *array = [NSArray arrayWithObjects:chip1, chip2, nil];
通过在定义数组时使用Objective-C Generics,您可以避免将来出现类似问题:
NSArray <NSImageView*>*array = [NSArray arrayWithObjects:chip1, chip2, nil];
如果您尝试将NSImageView
以外的类添加到数组中,则会出现编译器错误。