
NSDictionary
不可变的字典
创建字典的方法
// 创建字典的方式
NSDictionary *dy = [NSDictionary dictionaryWithObject:@"a"forKey:@"b"];
NSDictionary *dy1 = [NSDictionary dictionaryWithObjectsAndKeys:@"a",@"b",@"c",@"d" ,nil]; // 快速创建字典
// 重复key值,重复的不能保存到字典中
NSDictionary *dy2 = @{@"we":@"haha", @"we":@"ha"}; NSLog(@"%@",dy);
NSLog(@"%@",dy1);
NSLog(@"%@",dy2);
获取字典的长度
// 获取字典长度
NSDictionary *dy2 = @{@"we":@"haha", @"w":@"ha"};
NSLog(@"%lu",dy2.count); // 输出2
// 如果key值重复,长度不计算在内
NSDictionary *dy2 = @{@"we":@"haha", @"we":@"ha"};
NSLog(@"%lu",dy2.count); //输出1
字典的遍历
NSDictionary *dy1 = [NSDictionary dictionaryWithObjectsAndKeys:@"a",@"b",@"c",@"d" ,nil]; // 快速创建字典
// 重复key值,重复的不能保存到字典中
NSDictionary *dy2 = @{@"we":@"haha", @"w":@"ha"};
NSLog(@"%lu",dy2.count); // 字典的遍历
for (NSString *key in dy2) {
NSLog(@"key = %@, value = %@", key, [dy2 objectForKey:key]);
}
// 枚举类型遍历
[dy1 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"key = %@, value = %@", key, obj);
}];
把字典存到文件中
// 把字典保存到文件中
NSDictionary *dy2 = @{@"we":@"haha", @"w":@"ha"};
BOOL isWrite = [dy2 writeToFile:@"/Users/cloudwalk/Desktop/test.plist" atomically:YES];
if (isWrite) {
NSLog(@"写入成功");
}
从文件中读取字典
NSDictionary *readDy2 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/cloudwalk/Desktop/test.plist"];
NSLog(@"%@",readDy2);
通过把数组添加到字典中,构建成数组字典
NSArray *sdArr = [NSArray arrayWithObjects:@"zaozhuang",@"jinan",nil];
NSArray *jxArr = [NSArray arrayWithObjects:@"jiujiang",@"nanchang",nil];
NSDictionary *citys = [NSDictionary dictionaryWithObjectsAndKeys:sdArr,@"sd",jxArr,@"jx", nil];
NSLog(@"citys = %@",citys);
NSDictionary *citys = [NSDictionary dictionaryWithObjectsAndKeys:sdArr,@"sd",jxArr,@"jx", nil];
NSLog(@"citys = %@",citys);
// 把citys存到文件中
[citys writeToFile:@"/Users/cloudwalk/Desktop/test1.plist" atomically:YES];
NSMutableDictionay
// 创建可变字典
NSMutableDictionary *dy1 = [NSMutableDictionary dictionary]; // 添加键值对
[dy1 setValue:@"lili" forKey:@"is"];
[dy1 setValue:@"heihei" forKey:@"hah"];
NSLog(@"%@",dy1); // 删除某个键值对
//[dy1 removeObjectForKey:@"is"];
NSLog(@"%@",dy1); // 快速修改键值对
dy1[@"is"] =@"xossk";
NSLog(@"%@",dy1); // 修改键值对
[dy1 setObject:@"xixi" forKey:@"is"];
NSLog(@"%@",dy1);