Ios 如何根据条件提取nsdictionary条目并将其复制到另一个数组或nsdictionary

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;

我需要检查nsdictionary中的元素是否不等于normal,然后将该元素复制到数组中,作为UITable的数据源

以下是一个条目示例:

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