NSMutableDictionary 的使用

150 篇文章 0 订阅

NSArray是有序的, NSDictionary是无序的

NSArray是通过下标访问元素, NSDictionary是通过key访问元素.

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
	@autoreleasepool {

		// 创建 Dictionary
		NSMutableDictionary * dict1 = [NSMutableDictionary dictionary];

		NSMutableDictionary * dict2 = [NSMutableDictionary dictionaryWithCapacity:5];

		// 注意: NSDictionary 创建的时候 相同key 只接收 最初的值 , 而NSMutableDictionary 接收 最后添加的值,因为可变.
		NSMutableDictionary * dict3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"chenglong", @"name1", @"22222", @"name1", @"lilianjie", @"name2", nil];
		NSLog(@"%@", dict3);
		// 添加键值对
		[dict1 setObject:@"chenglong" forKey:@"name1"];

		// 注意: NSDictionary 创建的时候 相同key 只接收 最初的值 , 而NSMutableDictionary 接收 最后添加的值,因为可变.
		// 使用相同key , 后添加的覆盖 之前的value;
		[dict1 setObject:@"11111" forKey:@"name1"];

		[dict1 setObject:@"lilianjie" forKey:@"name2"];

		NSLog(@"%@", dict1);

		// 删除
		[dict1 removeObjectForKey:@"name1"];
		[dict1 removeAllObjects];

		// NSKeyValueCoding.h 里的方法, 不是NSMutableDictionary里的方法...
        // 反射的时候会用到此函数 , 且非常好用. 目前setObject 自由度更高.
        // - (void)setValue:(nullable ObjectType)value forKey:(NSString *)key;
        // key的值 只能是 NSString 类型...
		[dict1 setValue:@"333" forKey:@"name3"];
		NSLog(@"%@", dict1);

		// 修改
        [dict1 setObject:@"liubang" forKey:@"name3"];
        // 简写形式
        dict1[@"name3"] = @"xiangyu";
        NSLog(@"%@",dict1);

        // 查找
        NSArray * arr = [dict3 allKeys];
        NSLog(@"%@",arr);

        if ([arr containsObject:@"name1"]) {
            NSLog(@"%@",dict3[@"name1"]);
        }
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值