Ios 是否从NSDictionary的数组中查找值?

Ios 是否从NSDictionary的数组中查找值?,ios,nsarray,nsdictionary,Ios,Nsarray,Nsdictionary,我有一个NSArray包含多个NSDictionary对象,这个NSDictionary又有一个包含一些NSStrings/NSNumbers的数组 此NSArray如下所示 ( { "bins_arr" = ( 531662, 549177, 540165, 546616, 549777, 549778,

我有一个
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";
    }
)
现在我需要在
NSArray
中找到一个给定的
NString/NSNumber
,如果找到了它,我还需要对相应的
发行商
值进行罚款,例如,如果我找到461797,那么它应该搜索它,并找到该发行商是PQRS

一种方法是将每个
NSArray
放在
NSArray
-->
NSDictionary
中,循环遍历整个
NSArray
,并将给定的数字与当前的数字和
NSArray
中的数字匹配,但是我不想要这个搜索,因为这个
NSArray
有可能是
NSDictionary
的对象,所有
NSDictionary
对象又有大
NSArray

有谁能给我推荐一些很棒的观点来达到这个目的吗。
提前感谢。

将阵列转换为集合

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

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

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

您不必自己使用循环(对于数字数组),您可以使用containsObject查找特定的数字(尽管该方法可能在内部使用循环)。是的,我可以使用containsObject,但最终我只能使用循环,因为containsObject确实使用循环。顺便说一句,感谢@rdelmarThere没有办法遍历不显式或隐式涉及循环的数组(可能除了使用谓词——我不确定如何实现,而且通常比循环慢)。除非以某种逻辑方式对内部数组进行排序,否则在没有循环的情况下,无法真正搜索它。而且它们看起来没有分类。伙计们,trie数据结构呢????我对它知之甚少,我认为它解决了我的问题,但我不太确定。只有在创建集合后的恒定时间。