我已经创建了一个NSStrings数组,它结合了另一个原始NSArray的NSDictionary的两个元素,我已经在UITableView中进行了显示/排序。
然后使用原始NSArray,当用户触摸一个单元格并启动didSelectCellAtIndexPath函数时,我想将cell.textLabel.text与修改后的NSArray中的NSString进行比较,然后使用数组计数器我想分配NSDictionary原始Array到singleEntryArray。
我已经尝试了自己,但我一直将null返回到NSDictionary,但我不确定原因。
for (int i=0; [[modifiedArray objectAtIndex:i] isEqualToString:cell.textLabel.text]; i++) {
singleEntryArray = [originalArray objectAtIndex:i];
}
非常感谢任何帮助。
答案 0 :(得分:5)
for
中的谓词必须为真才能继续。例如,通常:
for (i = 0; i < 10; i++) ...
在你的情况下,你可能在第一次迭代时没有得到真,因此singleEntryArray是未分配的。
试试这样:
int i = 0;
for (NSString *obj in modifiedArray)
if ([obj isEqualToString: cell.textLabel.text])
break;
else
i++;
/* Value of 'i' is index into array. Caution if not found! */
singleEntryArray = [originalArray objectAtIndex: i];
[编辑]正如@chuck指出的那样。以上更方便地表示为
int i = [modifiedArray indexOfObject: cell.textLabel.text];
singleEntryArray = (i == NSNotFound ? NULL : [originalArray objectAtIndex: i]);