黑马程序员——OC基础---Foundation之字典

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

一、字典的初始化
1.不可变字典初始化
示例代码:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        /*
         字典:
         key ----> value
         索引 ---->文字内容
         */
        NSArray *key = @[@"name",@"address"];
        NSArray *objects = @[@"king",@"shenzhen"];

        //创建一个字典
        NSDictionary *dirt = [NSDictionary dictionaryWithObjects:objects forKeys:key];

        //创建一个字典
        NSDictionary *dirt1 = [NSDictionary dictionaryWithObjectsAndKeys:@"king",@"name",@"shenzhen",@"address", nil];

        id obj = [dirt objectForKey:@"name"];
        id obj1 = dirt1[@"address"];
        NSLog(@"%@",obj);
        NSLog(@"%@",obj1);
    }
    return 0;
}

运行结果:
这里写图片描述
2.可变字典初始化
示例代码:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        //定义可变字典
        NSMutableDictionary *dirt = [NSMutableDictionary dictionary];

        //添加键值对
        [dirt setObject:@"king" forKey:@"name"];
        [dirt setObject:@"深圳" forKey:@"adress"];

        //移除键值对
//        [dirt removeObjectForKey:@"name"];
        NSLog(@"%@",dirt[@"name"]);
    }
    return 0;
}

运行结果:
这里写图片描述

二、字典遍历
示例代码:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSDictionary *dic1=[NSDictionary dictionaryWithObjectsAndKeys:
                            @"1",@"a",
                            @"2",@"b",
                            @"3",@"c",
                            @"2",@"d",
                            nil];
        //遍历1
        for (id key in dic1) {//注意对于字典for遍历循环的是key
            NSLog(@"%@=%@",key,[dic1 objectForKey:key]);
        }
        /*结果:
         d=2
         b=2
         c=3
         a=1
         */

        //遍历2
        NSEnumerator *enumerator=[dic1 keyEnumerator];//还有值的迭代器[dic1 objectEnumerator]
        id key=nil;
        while (key=[enumerator nextObject]) {
            NSLog(@"%@=%@",key,[dic1 objectForKey:key]);

        }
        /*结果:
         d=2
         b=2
         c=3
         a=1
         */

        //遍历3
        [dic1 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
            NSLog(@"%@=%@",key,obj);
        }];
        /*结果:
         d=2
         b=2
         c=3
         a=1
         */
    }
    return 0;
}

注意:同数组一样,不管是可变字典还是不可变字典初始化元素后面必须加上nil以表示结束。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值