Ios 如何根据条件提取nsdictionary条目并将其复制到另一个数组或nsdictionary
我需要检查nsdictionary中的元素是否不等于normal,然后将该元素复制到数组中,作为UITable的数据源 以下是一个条目示例:Ios 如何根据条件提取nsdictionary条目并将其复制到另一个数组或nsdictionary,ios,objective-c,uitableview,nsarray,nsdictionary,Ios,Objective C,Uitableview,Nsarray,Nsdictionary,我需要检查nsdictionary中的元素是否不等于normal,然后将该元素复制到数组中,作为UITable的数据源 以下是一个条目示例: Trailer = { BodyDoorsCondition = Normal; Breaks = Dent; HandSideRails = Normal; KingPinUpperPlate = Normal; LandingGear = Scratches;
Trailer = {
BodyDoorsCondition = Normal;
Breaks = Dent;
HandSideRails = Normal;
KingPinUpperPlate = Normal;
LandingGear = Scratches;
Lights = Normal;
MudFlaps = Normal;
RearEndProtection = Normal;
Reflectors = Normal;
SideSteps = Normal;
StripCurtains = Normal;
Suspension = Normal;
TieDowns = Normal;
};
我需要将起落架移动到一个新的阵列,我可以将它用作我的UITable的值
感谢您提供的任何提示或帮助。是的,您可以使用EntriesPassingTest键
NSSet * selectedKeys = [Trailer keysOfEntriesPassingTest:^(id key, id obj, BOOL *stop)
{
return ![obj isEqualToString:@"Normal"];
}];
这段代码很有效,我只想与大家分享
NSMutableDictionary *dataDict=[NSMutableDictionary dictionary];
NSMutableArray *dataSource=[NSMutableArray array];
NSArray *allKeys=[tractorDict allKeys];
for (id key in allKeys) {
if ([[tractorDict objectForKey:key]isEqualToString:@"Normal"]==NO) {
[dataSource addObject:key];
[dataDict setValue:[tractorDict objectForKey:key] forKey:key];
}
}
我个人更喜欢这样:
NSMutableArray *array = [NSMutableArray array];
NSDictionary *Trailer;
[Trailer enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *obj, BOOL *stop) {
if (![obj isEqualToString:@"Normal"]) {
[array addObject:key];
}
}];
确切地说是起落架和刹车。是的,您可以使用entriesspassingtest-ref键编辑您的问题并添加代码;作为一个评论,它是不可读的。@Jageen你有确切的例子吗?我不能按照给定的例子,道歉,谢谢你的回答。我发布的代码可以工作,但我还需要获取与条件匹配的元素的值。可能我需要的不是数组,而是NSMutableDictionary。我尝试在注释中添加“”,但没有效果。我怎么能把它标记为代码。@bbumi我得到了相反的结果,我不能把它写出来!因为不平等。我需要捕获所有不正常的内容,并将其添加到NSDictionary中,如果出现凹痕或划痕,则将其与值一起添加到NSDictionary中。再次感谢你attention@baste我不明白,你为什么不能放!不平等?我要把钱放在哪里!为了平等?抱歉,我是新手,目标是c
return![obj isEqualToString:@“正常”]代码>您还可以将其与编号进行比较。返回[obj isEqualToString:@“Normal”]==NO代码>