第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;
}

上一篇下一篇

猜你喜欢

热点阅读