我在Objective c中有一个数组,其内容如下:
reg_nr = 0002, valor = 00010, nomtech = ab-dd
reg_nr = 0002, valor = 00020, nomtech = ab-dt
reg_nr = 0003, valor = 00030, nomtech = ab-ds
reg_nr = 0003, valor = 00040, nomtech = ab-jh
我想从select数组中获取一个值。
例如,如果这是一个列名为
的select语句reg_nr valor nomtech
0002 00010 ab-dd
0002 00020 ab-dt
0003 00030 ab-ds
0003 00040 ab-jh
选择查询为select nomtech from tablename where valor = '00030'
,我会得到值ab-ds
。
我如何为上面的数组执行此操作?
编辑 - 澄清 - 这表明数组已经形成 -
SUPObjectList *docs2 = [MMRDS_QSSCabeceraPedido findAll];
// findall is a sap command that returns a list of objects
if ([docs2 length] > 0)
{
for (MMRDS_QSSCabeceraPedido * oneRec in docs2)
{
[array1 addObject:oneRec];
}
}
答案 0 :(得分:2)
看看NSPredicate,它非常类似于'select'语句来过滤数组
答案 1 :(得分:1)
您可以像这样使用NSPredictate:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains %@", @"valor = 00030"];
NSArray *filterArray = [array filteredArrayUsingPredicate:predicate];
NSLog(@"ARRAY: %@", filterArray);
我给你整个对象,如果你想得到nom技术,你可以从过滤后的数组中获取字符串对象,你可以通过','
来破坏它NSArray *splitArray = [filterArray[0] componentsSeparatedByString:@","];
现在,您可以通过电话
获取您的nom技术NSString *string = splitArray[2];
此字符串将包含nomtech = ab-dd
,因此您必须删除不需要的子字符串。
希望这有帮助。