Ios iPhone从键中的值获取数组的索引
我有下一个Ios iPhone从键中的值获取数组的索引,ios,objective-c,arrays,Ios,Objective C,Arrays,我有下一个NSMutableArray: Product[0] { name => val1, Price => pricevalue 1 } Product[1] { name => val2, Price => pricevalue2 } 我想搜索:name=val2,并返回产品的索引,所以是1 __block NSUInteger index = NSUIntegerMax; [products enumerateObjec
NSMutableArray
:
Product[0] {
name => val1,
Price => pricevalue 1
}
Product[1] {
name => val2,
Price => pricevalue2
}
我想搜索:name
=val2
,并返回产品的索引,所以是1
__block NSUInteger index = NSUIntegerMax;
[products enumerateObjectsUsingBlock: ^ (Product* product, NSUInteger idx, BOOL* stop) {
if([product.name isEqualToString:@"val2"])
{
index = idx;
*stop = YES;
}
}];
编辑:拉文德拉的解决方案更加优雅 像这样使用
NSIndexSet *indices = [array
indexesOfObjectsPassingTest:^(id obj, NSUInteger idx, BOOL *stop) {
return [[obj objectForKey:@"name"] isEqualToString:@"val2"];
}];
快乐编码………有一些方法需要更少的代码行,但没有任何方法比直接循环更有效,您可以轻松地自己编码。如果你能自己用简单、直接的循环和if语句,相当有效地完成某件事,就没有必要寻找“聪明”的方法。