【发布时间】:2013-01-21 19:22:26
【问题描述】:
我有一个NSMutableArray (_theListOfAllQuestions),我正在用文件中的数字填充它。然后我将该数组中的对象与qNr (NSString) 进行比较,我得到了错误。我什至将数组转换为另一个NSString、_checkQuestions,以确保我正在比较NSStrings。我也测试了使用 item 进行比较。
-(void)read_A_Question:(NSString *)qNr {
NSLog(@"read_A_Question: %@", qNr);
int counter = 0;
for (NSString *item in _theListOfAllQuestions) {
NSLog(@"item: %@", item);
_checkQuestions = _theListOfAllQuestions[counter]; //_checkQuestion = NSString
NSLog(@"_checkQuestions: %@", _checkQuestions);
if ([_checkQuestions isEqualToString:qNr]) {
NSLog(@">>HIT<<");
exit(0); //Just for the testing
}
counter++;
}
运行此代码时,我得到以下NSLog:
read_A_Question: 421
item: 1193
_checkQuestions: 1193
...和错误:
-[__NSCFNumber isEqualToString:]:无法识别的选择器发送到实例 0x9246d80 *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFNumber isEqualToString:]: 无法识别的选择器发送到实例 0x9246d80'
我确实相信我仍在将 NSString 与某种数字进行比较,但在我看来,我正在比较 NSString 与 NSString?
我真的需要一些帮助来 1) 理解问题,2) 解决问题?
【问题讨论】:
-
那么
_checkQuestions至少在一种情况下是NSNumber而不是NSString。_theListOfAllQuestions到底是什么?那是如何填充的?
标签: ios objective-c