A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 枫煠 中级黑马   /  2014-12-29 21:23  /  877 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 枫煠 于 2014-12-29 21:27 编辑

NSArray、NSDictionary各有四种方式
  • Statement
    1. //NSArray
    2. NSArray* arrayItems = @[@1,@2,@3,@4,@5,@6,@7,@8,@9,@10];
    3. for (int i = 0; i < [arrayItems count]; ++i) {
    4.         NSNumber* number = [arrayItems objectAtIndex:i];
    5. }
    6. //NSDictionary
    7. NSDictionary* dicItems = @{@1:@"1",@2:@"2",@3:@"3",@4:@"4",@5:@"5",@6:@"6",@7:@"7"};
    8. NSArray* keys = [dicItems allKeys];
    9.     for (int i =0; i< [keys count]; ++i) {
    10.         NSNumber* keyNumber = [keys objectAtIndex:i];
    11.     }
    复制代码

  • For in
    1. //NSArray
    2. NSArray* arrayItems = @[@1,@2,@3,@4,@5,@6,@7,@8,@9,@10];
    3. for (NSNumber* number in arrayItems){
    4.     }
    5. //NSDictionary
    6. NSDictionary* dicItems = @{@1:@"1",@2:@"2",@3:@"3",@4:@"4",@5:@"5",@6:@"6",@7:@"7"};
    7. for (NSNumber* keyNumber in [dicItems allKeys]){
    8.     }
    复制代码

  • Block
    1. //NSArray
    2. NSArray* arrayItems = @[@1,@2,@3,@4,@5,@6,@7,@8,@9,@10];
    3. [arrayItems enumerateObjectsUsingBlock:^(NSNumber* number, NSUInteger idx, BOOL *stop) {
    4.     }];
    5. //NSDictionary
    6. NSDictionary* dicItems = @{@1:@"1",@2:@"2",@3:@"3",@4:@"4",@5:@"5",@6:@"6",@7:@"7"};
    7. [dicItems enumerateKeysAndObjectsUsingBlock:^(NSNumber* keyNumber, NSString* value, BOOL *stop) {
    8. }];
    复制代码

  • Enumerator
    1. //NSArray
    2. NSArray* arrayItems = @[@1,@2,@3,@4,@5,@6,@7,@8,@9,@10];
    3. NSEnumerator* enumerator = [arrayItems objectEnumerator];
    4.     NSNumber* number;
    5.     while (number =[enumerator nextObject]) {
    6.     }
    7. //NSDictionary
    8. NSDictionary* dicItems = @{@1:@"1",@2:@"2",@3:@"3",@4:@"4",@5:@"5",@6:@"6",@7:@"7"};
    9. NSEnumerator* enumerator = [dicItems keyEnumerator];
    10.     NSNumber* keyNumber;
    11.     while (keyNumber = [enumerator nextObject]) {
    12.     }
    复制代码

    这四种方式各有优缺点,另外做一个小Demo比较四种方式搜寻物件的时间
    最后得到的结果是NSArray使用Block会比较快一点,NSDictionary用Enumerator比较快,有兴趣的自己去下载看看吧


历遍数据.zip

53.19 KB, 下载次数: 24

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马