0

我有一个 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"]];
        }

    }

我究竟做错了什么?

4

2 回答 2

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"]];         
    }
}

这也假设添加到 facilityAvailable 的对象是基于您的 InfoDictionary 中真正是 NSString 对象的对象。这会将它们转换为 NSString 对象,但如果它们不是真的来自 InfoDictionary,您会得到奇怪的行为。

于 2012-06-13T18:04:49.397 回答
0

消息:

 [__NSArrayI isEqualToString:]: unrecognized selector sent to instance

意味着这avail是一个 NSArray 对象,而不是您预期的 NSString ,因此出现错误。你应该检查你如何填充你的InfoDictionary字典,因为它来自那里。

于 2012-06-13T17:55:12.467 回答