Foundation之NSDictionary

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);

“`

阅读更多
文章标签: foundation
个人分类: Foundation
上一篇Foundation--NSSet
下一篇Foundation--NSMutableDictionary
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭