关闭

Foundation之NSDictionary

标签: foundation
28人阅读 评论(0) 收藏 举报
分类:

1、创建方法

#import <Foundation/Foundation.h>

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

        //字典的创建方法
        NSDictionary *dict1 = [NSDictionary dictionaryWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3", nil];//标准方法
        NSLog(@"%@", dict1);
        NSDictionary *dict2 = @{@"1":@"one",@"2":@"two",@"3":@"three"};//优化后方法,最常用的
        NSLog(@"%@", dict2);
        NSArray *object = @[@"one",@"two",@"three"];
        NSArray *key = @[@"1",@"2",@"3"];
        NSDictionary *dict3 = [NSDictionary dictionaryWithObjects:object forKeys:key];//数组转化成字典
        NSLog(@"%@", dict3);
        NSDictionary *dict4 = [NSDictionary dictionaryWithDictionary:dict3];//创建副本
        NSLog(@"%@", dict4);
    }
    return 0;
}

2、求键值对个数、字典中所有值、所有关键字

        //求键值对个数
        NSLog(@"%lu", dict3.count);
        //获取字典中的所有值
        object = [dict3 allValues];
        NSLog(@"%@", object);
        //获取字典中所有关键字
        NSLog(@"%@", [dict3 allKeys]);

3、通过关键字找到对应的值(3种方法)

NSString *str = [dict3 objectForKey:@"1"];//标准方法
        NSLog(@"%@", str);
        NSLog(@"%@", [dict3 objectForKey:@"3"]);
        str = dict3[@"1"];//优化后的方法,最常用的方法
        NSLog(@"%@", str);
        //根据多个关键字来找多个值
        NSArray *key1 = @[@"1",@"4"];
        NSArray *object1 = [dict3 objectsForKeys:key1 notFoundMarker:@"没有对应的值"];
//        NSLog(@"%@", object1);
        NSLog(@"------------");
        for (NSString *s in object1)
        {
            NSLog(@"%@", s);
        }

4、通过值找对应关键字

NSArray *key2 = [dict3 allKeysForObject:@"three"];
        NSLog(@"%@", key2);

5、对字典中的值进行排序

NSArray *key3 = [dict3 keysSortedByValueUsingSelector:@selector(compare:)];
        for (NSString *s in key3)
        {
            NSLog(@"%@ = %@", s, dict3[s]);
        }

6、遍历

//遍历
        NSEnumerator *e = [dict3 objectEnumerator];
        //枚举器值遍历
        while (str = [e nextObject])
        {
            NSLog(@"%@", str);
        }

        e = [dict3 keyEnumerator];//枚举器关键字遍历
        while (str = [e nextObject])
        {
            NSLog(@"%@", str);
        }

        //面向对象的遍历,只遍历关键字
        for (NSString *s in dict3)
        {
            NSLog(@"%@=%@", s, dict3[s]);//快速遍历
        }
7、字典的文件读写
[dict3 writeToFile:@"文件夹绝对路径" atomically:YES];
        NSDictionary *dict5 = [NSDictionary dictionaryWithContentsOfFile:@"文件夹绝对路径"];
        NSLog(@"%@", dict5);

“`

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:710次
    • 积分:41
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:3篇
    • 译文:1篇
    • 评论:0条
    文章分类
    文章存档