Objective-C语言_可变字典

这篇博客详细介绍了Objective-C中可变字典`NSMutableDictionary`的初始化方法,包括创建空字典、带键值对的字典、从其他字典复制以及使用枚举器的方法。此外,还展示了可变字典的增删改查操作,如设置值、更新值、删除键值对以及清除所有内容。通过示例代码,解释了如何从本地和网络加载字典,并提供了检查和遍历字典中特定值的方法。

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

<span style="font-size:18px;">#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        //可变字典NSMutabkeDictionary
        //1.初始化方法
        //创建一个空的字典
        NSMutableDictionary *mDictionary1=[NSMutableDictionary dictionary];
        //创建一个有一个键值对的可变字典
        NSMutableDictionary *mDictionary2=[NSMutableDictionary  dictionaryWithObject:@"Rick" forKey:@"name"];
        NSMutableDictionary *mDictionary3=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rick",@"name",@25,@"age",@"GZ",@"address", nil];
        //通过另一个字典创建一个字典
        NSMutableDictionary *mDictionary4=[NSMutableDictionary dictionaryWithDictionary:mDictionary3];
        //使用枚举器
        NSEnumerator *enu=[[mDictionary4 allKeys] objectEnumerator];
        NSString *key;
        while (key=[enu nextObject])
        {
            NSLog(@"%@=%@",key,mDictionary4[key]);
        }
        //可变字典独有初始化方法
        NSMutableDictionary *mDictionary5=[NSMutableDictionary dictionaryWithCapacity:10];
        //创建了初始大小为10各位键值对的可变字典  同样的参数num只是初始的大小,提高
        //程序效率。并没有现在字典的大小,如果继续往里面添加数据,字典的元素会继续增加(无符号整形)
        
        //从本地读取字典
        NSMutableDictionary *mDictionary6=[NSMutableDictionary dictionaryWithContentsOfFile:@"文件的路径"];
        //从网络读取字典
        NSMutableDictionary *mDictionary7=[NSMutableDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@"http://www.baidu.com"]];
        //操作字典
        //增删改查
        
        //增加
        [mDictionary5 setValue:@"Rick" forKey:@"name"];//第一个天key第二个天value
        [mDictionary5 setValue:@25 forKey:@"age"];
        
        //改(如果原来字典中已有了key这个关键字,那么这次新加的值就会覆盖掉原来关键字(键)key对应的值)
        [mDictionary5 setValue:@"Jack" forKey:@"name"];
        
        //使用新语法去改
        mDictionary5[@"name"]=@"Leo";
        //删除指定key的对象
        [mDictionary5 removeObjectForKey:@"name"];//ForKey指定某个key
        //删除所有对象
        [mDictionary5 removeAllObjects];
        NSLog(@"dic5=%@",mDictionary5);
        
        //例子
        NSMutableDictionary *mDictionary8=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rice",@"name1",@25,@"age",@"GZ",@"address",@"Rice",@"name2",@"Rice",@"name3", nil];//Rice为value name为key
        
        NSEnumerator *enu1=[[mDictionary8 allKeys]objectEnumerator];
        //NSEnumerator *enu2=[mDictionary8.allKeys objectEnumerator];//可以的
        
        
        
        NSString *key1;
        while (key1=[enu1 nextObject])
        {
            NSLog(@"%@=%@",key1,mDictionary8[key1]);
        }
        
        while (key1=[enu1 nextObject])
        {
            if (mDictionary8[key1]==[mDictionary8 objectForKey:@"Rice"])
            {
                NSLog(@"key=%@",key1);
            }
        }
        
        NSArray *key8=mDictionary8.allKeys;//这是数组不是NSString
        for (NSString *key in key8)
        {
            NSString *string;
            if ([mDictionary8[key] isKindOfClass:[NSNumber class]])
            {
                int a=[mDictionary8[key] intValue];
                string=[NSString stringWithFormat:@"%d",a];
            }
            else
            {
                string=mDictionary8[key];
            }
            if ([string isEqualToString:@"Rice"])
            {
                NSLog(@"Key=%@",key);
            }
            
        }
        
        NSArray *key9=mDictionary8.allKeys;
        for (NSString *key in key9)
        {
            if ([mDictionary8[key] isEqual:@"Rice"])
            {
                NSLog(@"key=%@",key);
            }
        }
        
        
        
        
        
            
        
    }
    return 0;
}</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值