我有一个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
中到底有什么?它是如何被填充的? - Alex Wayne