美文网首页iOS-面试题iOS学习笔记iOS Developer
iOS面试--Objective-C中的集合遍历

iOS面试--Objective-C中的集合遍历

作者: coder_那一抹刚吹过的风 | 来源:发表于2016-08-06 18:36 被阅读99次

为什么突然总结这个那?这个还要从昨天面试说起.昨天有个iOS朋友去面试碰到了这样一道题.编程:遍历NSDictionary *dic,并打印出字典的值.首先本身这道题并不难.但是很能体现一个但是你的所书写的代码很能体现你的编程水平小编我第一反应就是最后low的那种做法,首先取得所有的key,然后循环遍历出所有的值.幸亏没去面试,不然丢人丢到家了.

今天我们就跟大家好好总结一下Objective-C中集合对象的遍历方法

NSArray *arrInstance = @[@"xhc", @"lyc", @"son or dautghter"];
        NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                    @"Stout", @"dark", @"Hefeweizen", @"wheat", @"IPA", @"hoppy", nil];
        
        //开始遍历
        for (NSInteger i = 0; i < arrInstance.count; i++) {
            NSLog(@"%@", arrInstance[i]);
        }
        
        NSArray *allKeys = [dictionary allKeys];
        for ( NSInteger i = 0; i < dictionary.count; i ++) {
            NSLog(@"value = %@", [dictionary valueForKey:allKeys[i]]);
        }
        
        //Middle Traverse
        for (NSString * obj in arrInstance) {
            NSLog(@"%@", obj);
        }
        
        for (NSString *key  in dictionary) {
            NSLog(@"The key is %@, the value is %@", key, [dictionary valueForKey:key]);
        }
        
        //high Traverse
         [arrInstance enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
             NSLog(@"%@", obj);
         }];
        NSLog(@"******************************************");
        [dictionary enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
            NSLog(@"key is %@, value is %@", key, obj);
        }];
        
        
        //一些奇巧
        //翻转数组
        [arrInstance enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            NSLog(@"%@", obj);
        }];

遍历大致也就这么要说的了。如果大家有更好的办法,欢迎给我留言,大家一块交流,一块进步。在我寻找好的解决方案的时候还是找到了几篇相当不错的文章。这里风向给大家

ios中集合遍历方法的比较和技巧
Fast Enumeration In Objective-C

相关文章

网友评论

    本文标题:iOS面试--Objective-C中的集合遍历

    本文链接:https://www.haomeiwen.com/subject/ovqujttx.html