![](/img/trans.png)
[英]Error: “-[NSCFString sizeWithTextStyle:]: unrecognized selector” in IPhone SDK
[英]iPhone SDK: NSMutableArray unrecognized selector
我有一个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"]];
}
}
我究竟做错了什么?
消息:
[__NSArrayI isEqualToString:]: unrecognized selector sent to instance
表示avail
是一个NSArray对象,而不是您期望的NSString,因此是错误的。 您应该检查如何填充InfoDictionary
词典,因为它是从那里来的。
出于好奇,如果用以下代码替换代码,会发生什么:
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中获得了异常的行为,则您将获得奇怪的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.