我几天都遇到了这个问题,我无法摆脱它。 我在网上搜索过,但找不到任何有用的东西来解决我的问题。
这是情景。
我有一个字符串数组,其中包含从coredata sqlite db中获取的一堆id 我想知道这个数组中某个元素的索引。
我的第一个解决方案就像使用indexOfObject
一样简单-(NSInteger) getPageId:(NSString *)symbol_id {
NSInteger refId = [myIds indexOfObject:symbol_id];
// .. stuff ..
return refId;
}
现在,我不知道为什么,但函数的返回值始终是NSNotFound。 如果我通过NSLog打印出值
NSLog(@"%@\n%@", myIds, symbol_id);
我可以清楚地看到我正在搜索的值计算出数组的元素。
我甚至尝试过最愚蠢的解决方案,比如通过isEqual函数将匹配探测到for循环中:
int idx = 0;
for(NSString *tok in myIds) {
if([tok isEqual:synmbol_id])
{
NSLog(@"yay, a match was encountered!!");
return idx;
}
idx++;
}
但执行永远不会进入NSLog。
我不知道在哪里敲我的头。
希望你们中的一些人已经明白这一点并向我解释这一点。
事先提前ķ
答案 0 :(得分:2)
尝试打印阵列上的所有元素,如下所示:
for(NSString *tok in myIds) {
NSLog(@"On the array [%@]", tok);
}
也许在\t
阻止\n
消息按预期运行时,有一个TAB NSString
,一个输入isEqual
或一些奇怪的东西。通常这些字符很难在常规调试器上找到。这就是为什么我建议将字符串括在[]
。