Hur*_*rkS 1 for-loop objective-c nsdictionary nsarray ios
我已经创建了一个NSStrings数组,它结合了我从另一个原始NSArray中获得的NSDictionary的两个元素,我已经在UITableView中进行了显示/排序.
然后使用原始的NSArray,当用户触摸一个单元并启动didSelectCellAtIndexPath函数时,我想将cell.textLabel.text与修改后的NSArray中的NSString进行比较,然后使用数组计数器我想分配原始的NSDictionary数组到singleEntryArray.
我已经尝试了自己,但我一直将null返回到NSDictionary,但我不确定为什么.
for (int i=0; [[modifiedArray objectAtIndex:i] isEqualToString:cell.textLabel.text]; i++) {
singleEntryArray = [originalArray objectAtIndex:i];
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
谓词for必须是真实的才能继续.例如,通常:
for (i = 0; i < 10; i++) ...
Run Code Online (Sandbox Code Playgroud)
在你的情况下,你可能在第一次迭代时没有得到真,因此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];
Run Code Online (Sandbox Code Playgroud)
[编辑]正如@chuck指出的那样.以上更方便地表达为
int i = [modifiedArray indexOfObject: cell.textLabel.text];
singleEntryArray = (i == NSNotFound ? NULL : [originalArray objectAtIndex: i]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7190 次 |
| 最近记录: |