我有一个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}}。
任何人都可以向我提出一些很棒的观点来实现这一目标。 提前致谢。
答案 0 :(得分:0)
将数组转换为集合。
NSArray* array = ...;
NSSet* set = [[NSSet alloc] initWithArray:array];
if ([set containsObject:aNumber]) ...
不涉及循环。恒定时间,无论集合中有多少元素。