pragma mark NSMutableDictionary
pragma mark 概念
/**
概念: 《字典存储的都是键值对 都是通过某个 键 找到 对应的 值》
NSMutableDictionary
@"值":@"键"
@"lyh":@"name"
// 键值对 通过键(name) 找到 对应的值(lyh)
1.创建 (dictionary)
2.添加 (setObject:值 forKey:键)
添加一个字典 (setValuesForKeysWithDictionary:字典)
3.获取 (objectForKey:键)
dict[@"键"];
4.删除
删除一个 (removeObjectForKey)
删除多个 (removeObjectsForKeys)
5.修改 (setObject:值 forKey:键) // 添加同名的key 就是修改了
⚠️ 注意点
1. 不能使用@{}来创建一个可变的字典
2. 如果是不可变字典, 那么key不能相同
如果是不可变的字典, 出现了同名的key,那么后面的key对应的值 不会被保存
如果是在可变的字典中, 那么后面的
#pragma mark 字典(NSDictionary)和数组(NSArray) 的区别
NSArray 是有序的
NSDictionary 是无序的
NSArray 是通过下标访问元素
NSDictionary 是通过key访问元素
#pragma mark 创建 和 访问
array
创建
@[@"lyh",@"lys"]; (返回的是一个不可变数组)
访问
id a = array[1];
赋值
array[1] = @"lyh";
dict
创建
@{@"name":@"lyh",@"age":@"22"};
访问
id a = dict[@"name"];
赋值
dict[@"name"] = @"lyh";
*/
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#pragma mark main函数
int main(int argc, const char * argv[])
{
#pragma mark NSMutableDictionary
#warning 1.创建
NSMutableDictionary *dictM = [NSMutableDictionary dictionary];
NSLog(@"dic %@",dictM);
#warning 2.如何添加
[dictM setObject:@"lyh" forKey:@"name"];
NSLog(@"dic %@",dictM);
// 会将传入
[dictM setValuesForKeysWithDictionary:@{@"age":@"20",@"height":@"1.71"}];
NSLog(@"dic %@",dictM);
#warning 3.如何获取
// NSLog(@"dic %@",[dictM objectForKey:@"name"]);
NSLog(@"dic %@",dictM[@"name"]);
#warning 4.如何删除
// 删除单个
[dictM removeObjectForKey:@"name"];
NSLog(@"dic %@",dictM);
// 删除多个
// [dictM removeObjectsForKeys:@[@"age",@"height"]];
// NSLog(@"dic %@",dictM);
#warning 5.如何修改
// 如果利用setObject 方法给同名的key赋值,那么新值会覆盖旧值
[dictM setObject:@"180" forKey:@"age"];
NSLog(@"dic %@",dictM);
#warning ⚠️注意点
// 1. 不能使用@{}来创建一个可变的字典
// NSMutableDictionary *dictM2 = @{@"name":@"lyh"};
// [dictM2 setObject:@"20" forKey:@"age"];
// 2. 如果是不可变字典, 那么key不能相同
// 如果是不可变的字典, 出现了同名的key,那么后面的key对应的值 不会被保存
// 如果是在可变的字典中, 那么后面的
NSDictionary *dictM3 = @{@"name":@"lyh",@"name":@"lys"};
NSLog(@"dictM3 %@",dictM3);
// 可变字典重名
NSMutableDictionary *dictM4 = [NSMutableDictionary dictionaryWithObjects:@[@"lyh",@"lys"] forKeys:@[@"name",@"name"]];
NSLog(@"dictM4 %@",dictM4);
#pragma mark 字典(NSDictionary)和数组(NSArray) 的区别
/**
NSArray 是有序的
NSDictionary 是无序的
NSArray 是通过下标访问元素
NSDictionary 是通过key访问元素
*/
#pragma mark 创建 和 访问
/**
array
创建
@[@"lyh",@"lys"]; (返回的是一个不可变数组)
访问
id a = array[1];
赋值
array[1] = @"lyh";
dict
创建
@{@"name":@"lyh",@"age":@"22"};
访问
id a = dict[@"name"];
赋值
dict[@"name"] = @"lyh";
*/
return 0;
}