我有一个NSMutableArray,它从NSDictionary中获取添加到它的对象。 这些对象是1或0的值。 我试图循环这个NSMutableArray,以检查每个值。如果它是1,我设置为数组添加绿色刻度图像,如果它为零,我将红色十字图像添加到数组。
但是我在检查NSMutableArray的值时遇到以下错误:
[__NSArrayI isEqualToString:]: unrecognized selector sent to instance
这是我的代码:
facilitiesAvailable = [NSMutableArray new];
[facilitiesAvailable addObject:[[InfoDictionary valueForKey:@"wc-avail"]copy]];
[facilitiesAvailable addObject:[[InfoDictionary valueForKey:@"wifi_avail"]copy]];
tixArray = [NSMutableArray new];
for(NSString *avail in facilitiesAvailable) {
if([avail isEqualToString:@"1"]) {
[tixArray addObject:[UIImage imageNamed:@"greenTick.png"]];
} else {
[tixArray addObject:[UIImage imageNamed:@"redCross.png"]];
}
}
我做错了什么?
答案 0 :(得分:0)
消息:
[__NSArrayI isEqualToString:]: unrecognized selector sent to instance
表示avail
是NSArray对象,而不是您所期望的NSString,因此错误。您应该检查填充InfoDictionary
词典的方式,因为它来自那里。
答案 1 :(得分:0)
出于好奇,如果用这个替换代码会发生什么:
for(int i = 0; i < [facilitiesAvailable count]; i++) {
NSString * avail = (NSString *)[facilitiesAvailable objectAtIndex:i];
if([avail isEqualToString:@"1"]) {
[tixArray addObject:[UIImage imageNamed:@"greenTick.png"]];
} else {
[tixArray addObject:[UIImage imageNamed:@"redCross.png"]];
}
}
这也假设添加到facilitiesAvailable的对象基于InfoDictionary中真正是NSString对象的对象。这将它们归结为NSString对象,但如果它们不是来自InfoDictionary,那么你会得到奇怪的行为。