Hur*_*rkS 4 objective-c nsdictionary nsstring nsarray ios
我有一个字典数组,我想通过找到一个匹配的值,然后我可以Count ==数组的第N项
数组的每个项目都是这样的
HMOD = 0;
MID = 39;
MOD = SOMETHING; // looking for this value
ID = 50;
Run Code Online (Sandbox Code Playgroud)
所以我想创建一个遍历数组的循环,直到找到匹配的值,然后我使用count中的数字作为下一个视图中Index索引的引用.
我已经编写了这个代码的代码,但是希望它可以让你了解我想要创建的循环.
int count = 0;
while (singleName != [[ModArray valueForKey:@"MOD"] objectAtIndex:count]) {
count ++;
NSLog(@"%i", count);
}
Run Code Online (Sandbox Code Playgroud)
SingleName是一个NSString,我用来匹配ModArray中的MOD值...任何帮助将不胜感激.
iDe*_*Dev 10
通过valueForKey在字典数组上使用,这是一个更简单的解决方案,
假设你modArray是这样的,
NSArray *modArray = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObject:@"0" forKey:@"HMOD"],
[NSDictionary dictionaryWithObject:@"39" forKey:@"MID"],
[NSDictionary dictionaryWithObject:@"something" forKey:@"MOD"],
[NSDictionary dictionaryWithObject:@"50" forKey:@"ID"], nil];
Run Code Online (Sandbox Code Playgroud)
并且singleName具有价值"something"
NSString *singleName = @"something";
Run Code Online (Sandbox Code Playgroud)
array从中获取modArray带有键的对象"MOD",
NSArray *array = [modArray valueForKey:@"MOD"];
Run Code Online (Sandbox Code Playgroud)
检查是否singleName存在array.如果是,则获取该对象的第一个索引,该索引与带有键" MOD" 的字典索引相同modArray.
if ([array containsObject:singleName]) {
NSLog(@"%d", [array indexOfObject:singleName]);
} else {
NSLog(@"%@ is not present in the array", singleName);
}
Run Code Online (Sandbox Code Playgroud)
更新:
如果你想以自己的方式做到这一点,那么只有你正在使用的错误,!=而你应该使用isEqualToString.你应该这样做,
int count = 0;
while (![singleName isEqualToString:[[modArray valueForKey:@"MOD"] objectAtIndex:count]]) {
count ++;
NSLog(@"%i", count);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12541 次 |
| 最近记录: |