0

我需要检查 nsdictionary 中的元素是否不等于正常,然后将该元素复制到一个数组中,作为我的 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;
    };

我需要将 LandingGear 移动到一个可以用作 UITable 值的新数组中。

感谢您提供任何提示或帮助。

4

3 回答 3

2

是的,您可以使用 keysOfEntriesPassingTest

NSSet * selectedKeys = [Trailer keysOfEntriesPassingTest:^(id key, id obj, BOOL *stop)
                        {
                            return ![obj isEqualToString:@"Normal"];
                        }];
于 2013-07-16T15:57:07.773 回答
0

此代码有效,我只想分享

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];

                }

            }
于 2013-07-16T16:19:50.440 回答
0

我个人更喜欢这样的东西:

NSMutableArray *array = [NSMutableArray array];
NSDictionary *Trailer;
[Trailer enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *obj, BOOL *stop) {
    if (![obj isEqualToString:@"Normal"]) {
        [array addObject:key];
    }
}];
于 2013-07-16T19:51:52.787 回答