OC基础—数组和字典的遍历方法总结

本文总结了iOS开发中Objective-C(OC)的基础知识,重点关注数组和字典的遍历方法。通过实例讲解如何有效地遍历数组和字典,提升代码效率,适合初学者和进阶开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-



#import <Foundation/Foundation.h>
int main()
{
    // 遍历字典的方法:1.1 1.2 2.1 2.2(错误) 3.0 4.0

    NSDictionary *dict = @{@"name": @"jiale", @"address": @"beijing",@"qq": @"630655214"};

//  注意最好不要用下面的value和key作为关键字。

    // 1.1 一般遍历(for循环手动索引键)
/*
    NSArray *allKeys = dict.allKeys;                // 获得所有的键值作为索引。
    NSString *value;                                // id 也可以。  = [NSString string]也可以。

    for(NSInteger i = 0; i < allKeys.count; i++)    // 注意可以用点语法,说明他们是属性值。
    {
        value = [dict objectForKey:allKeys[i]];
        NSLog(@"%@   %@", allKeys[i], value);
    }
*/

    // 1.2 一般遍历(for循环手动索引键值)
/*
    NSArray *allValues = dict.allValues;
    NSArray *key;                                           //注意是数组,对应下面的allKeysForObject。id 也可以。 = [NSArray array]也可以。。

    for(NSInteger i = 0; i < allValues.count; i++)
    {
        key = [dict allKeysForObject:allValues[i]];         // 因为是数组,所以取出它的首元素。
        NSLog(@"%@   %@", key[0], allValues[i]);
    }
*/

    // 2.1 快速遍历(for循环遍历键)

/*    for(id key in dict)
    {
        id value = [dict objectForKey:key];                // 通过键得到键值。
        NSLog(@"%@   %@", value, key);
    }
*/

    // 2.2 快速遍历(for循环遍历键值,该方法错误,只能遍历键)
/*
    for(id obj in dict)
    {
        NSArray *key = [dict allKeysForObject:obj];
        NSLog(@"%@   ", obj);
    }
*/

    // 3.0 利用block超快速遍历,要谨记格式,其返回值为空。
/*
    [dict enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop) {
        NSLog(@"%@  %@", key, value);
    }];
*/

    // 4.0 利用枚举器遍历(索引得到键,不能得到键值,同方法2.2一个道理。)
/*
    NSEnumerator *enumerator = [dict keyEnumerator]; // 相应的,nsarray有-objectEnumerator方法。
    id key;

    while(key = [enumerator nextObject])            // 注意不要漏了此方法,NSEnumerator 只有一个属
    {                                               // 性allObjects 和一个方法nextObject.
        NSLog(@"%@  %@", key, [dict objectForKey:key]);
    }
*/


    // 遍历数组的方法:

    NSArray *arr = @[@"name", @"jiale", @"address", @"beijing",@"qq", @"630655214"];


    // 1.0 for循环遍历。
/*
    for (int i = 0; i < arr.count; i++) {
        NSLog(@"%d   %@", i, arr[i]);
    }
*/
    // 2.0 快速遍历。
/*
    for (id obj in arr) {
        NSLog(@"%d  %@", [arr indexOfObject:obj], obj);
    }
*/
    // 3.0 利用block遍历。
/*
    [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        NSLog(@"%d  %@", idx, obj);
    }];
*/
    // 4.0 利用nsenumerator枚举器遍历。

    NSEnumerator *enumerator = [arr objectEnumerator];
    id obj;

    while (obj = [enumerator nextObject]) {
        NSLog(@"%d  %@", [arr indexOfObject:obj], obj);

    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值