Foundation之NSDictionary

原创 2016年08月30日 10:54:21

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】18-集合类NSArray、NSSet、NSDictionary

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、NSArray 1.1 NSArray是OC数组,是不可变数组。OC数组只能存放OC对象,...
  • HONG321
  • HONG321
  • 2015年02月27日 07:30
  • 425

Foundation框架中的NSDictionary 、NSMutableDictionary

字典:NSDictionary /NSMutableDictionary 1. 概念:字典的关键字”key”及其定义的值”value”所构成的集合,即他是由key - value组...

黑马程序员—Foundation框架之NSDictionary与NSMutableDictionary

一、NSDictionary 1、关于NSDictionary 1)NSDictionary翻译过来叫做”字典” 2)日常生活中, “字典”的作用: 通过一个拼音或者汉字, 就能找到对应的详细解...

黑马程序员--OC自学笔记---10Foundation、NSString、NSURL、NSRange、NSArray、NSMutableArray、NSDictionary

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.   Foundation框架简介: 1)   框架是由许多类、方法、函数、...

Objective C - Foundation - NSNumber & NSString & NSArray & NSDictionary & NSSet

/*-------------------- NSNumber ----------------------*/         //创建(封装成)一个NSNumber对象         NSNum...

Foundation框架 - NSDictionary类、NSMutableDictionary类

NSArray、NSSet、NSDictionary/* 集合 1.NSArray\NSMutableArray * 有序 * 快速创建(不可变):@[obj1, obj2, obj3] *...

Foundation的学习-NSString、NSArray、NSDictionary、NSSet

cocoa程序编写主要用到了两个框架:Foundation和ApplicationKit(UIKit)框架。Foundation框架主要定义了一些基础类,供程序员使用。而UIKit主要是一些用户界面设...

OC--Foundation-NSDictionary,NSNumber,NSDate,NSValue

一、NSDictionary 字典 NSDictionary\NSMutableDictionary * 无序 * 快速创建(不可变):@{key1 : value1,  key2 : val...

Foundation框架(9)——NSDictionary的初始化、用法、遍历、内存管理

// // main.m // Foundation框架(9) // // Created by XinYou on 15-1-21. // Copyright (c) 2015年 ...

黑马程序员——Foundation框架——NSDictionary常用方法

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1. NSDictionary介绍 NSDictionary是一个关键字及其描述的集合,是一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Foundation之NSDictionary
举报原因:
原因补充:

(最多只允许输入30个字)