从NSDictionary数组中找到一个值?

时间:2015-03-11 19:28:19

标签: ios nsarray nsdictionary

我有一个NSArray包含多个NSDictionary对象,这个NSDictionary又有一个数组NSStrings/NSNumbers ...

NSArray如下所示......

(
        {
        "bins_arr" =         (
            531662,
            549177,
            540165,
            546616,
            549777,
            549778,
            549779,
            532663,
            549852,
            529495,
            532662,
            529117,
            533890,
            544170,
            554619,
            542418,
            540175,
            552137,
            542531,
            542556,
            552093,
            540531,
            552790,
            541497,
            554637,
            526421,
            431921,
            412800,
            431922,
            464558,
            508159,
            456822,
            450900,
            508126,
            508125,
            517700,
            430463,
            414746,
            461797,
            438628,
            461796,
            510460,
            520386,
            421175,
            455038,
            524133,
            518936,
            455390,
            405450,
            456407,
            438587,
            405451,
            493714,
            549149
        );
        "issuing_School" = ABCDEF;
        status = 0;
        title = ABCDEF;
    },
        {
        "bins_arr" =         (
            429393,
            416644,
            416645,
            416643,
            416646,
            436390,
            436389,
            436388,
            470613,
            524253,
            428306,
            489604,
            478893,
            414767,
            428348,
            469645,
            421493,
            470614,
            543705
        );
        "issuing_School" = PQRS;
        status = 0;
        title = "PQRS";
    },
        {
        "bins_arr" =         (
            422316,
            421560,
            483541
        );
        "issuing_School" = TCSB;
        status = 0;
        title = "TCSB";
    }
)

现在我需要在NString/NSNumber内找到一个给定的NSArray,如果找到它我也需要精确对应issuing_School值,例如如果我找到 461797 所以它应该搜索它并发现它的发行学校是 PQRS

执行此操作的一种方法是将NSArray内的NSArray - NSDictionary内的每个NSArray循环遍历整个NSArray,并将给定的数字与号码存在且位于NSArray,但我不想要此搜索,因为此NSDictionary可能会NSDictionary对象而所有NSArray对象都会有大{ {1}}。

任何人都可以向我提出一些很棒的观点来实现这一目标。 提前致谢。

1 个答案:

答案 0 :(得分:0)

将数组转换为集合。

NSArray* array = ...;
NSSet* set = [[NSSet alloc] initWithArray:array];

if ([set containsObject:aNumber]) ...

不涉及循环。恒定时间,无论集合中有多少元素。