第08天OC语言(09):NSMutableDictionary
2017-07-26 本文已影响4人
liyuhong
- 不要等到明天,明天太遥远,今天就行动。
须读:看完该文章你能做什么?
学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)
适合所有人,不需要懂的什么
注:(小白直接上手)
一、本章笔记
一、可变字典
1.创建
+ (instancetype)dictionary;
2.添加
- (void)setObject:(ObjectType)anObject forKey:(KeyType <NSCopying>)aKey;
二、code
main.m
#pragma mark 09-NSMutableDictionary
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#pragma mark - main函数
int main(int argc, const char * argv[])
{
#pragma 1.创建一个空的字典
NSMutableDictionary *dictM = [NSMutableDictionary dictionary];
NSLog(@"%@",dictM);
#pragma 2.添加
[dictM setObject:@"lyh" forKey:@"name"];
NSLog(@"%@",dictM);
// 会将传入字典中 所有的键值对 取出来 添加到dictM中
[dictM setValuesForKeysWithDictionary:@{@"age":@"25",@"height":@"171.1"}];
NSLog(@"%@",dictM);
#pragma 3.获取
NSLog(@"name = %@",dictM[@"name"]);
#pragma 4.删除
[dictM removeObjectForKey:@"name"];
NSLog(@"%@",dictM);
// [dictM removeObjectsForKeys:@[@"age",@"height"]];
// NSLog(@"%@",dictM);
#pragma 5.修改
// 如果利用 setObject 方法同名的key赋值, 那么新值会覆盖旧值
[dictM setObject:@"22" forKey:@"age"];
NSLog(@"%@",dictM);
#warning 注意点
// 1.不能使用@{}来创建一个可变的字典
// NSMutableDictionary *dictM2 = @{@"name":@"lyh"};
// [dictM2 setObject:@"30" forKey:@"age"];
// 2.如果是不可变数组 , 那么key不能相同
// 如果是不可变字典出现同名的key, 那么后面的key对应的值 不会被保存
// 如果是在可变数组中, 后面的会覆盖前面的
NSDictionary *dict = @{@"name":@"lyh",@"name":@"hxm"};
NSLog(@"dict = %@",dict);
NSMutableDictionary *dictM2 = [NSMutableDictionary dictionaryWithObjects:@[@"lyh",@"hxm"] forKeys:@[@"name",@"name"]];
NSLog(@"dictM2 = %@",dictM2);
return 0;
}