//
// main.m
// NSDictionary
//
// #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // 1.如何创建
NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"lnj" forKey:@"name"];
NSString *name1 = [dict1 objectForKey:@"name"];
NSLog(@"name = %@", name1); //lnj
NSLog(@"dict1 = %@", dict1); //dict1 = {name = lnj;} // 注意: key和value 是一一对应
NSDictionary *dict2 = [NSDictionary dictionaryWithObjects:@[@"lnj", @"", @"1.75"] forKeys:@[@"name", @"age", @"height"]];
NSLog(@"dict2 = %@", dict2); //{age = 30;height = "1.75";name = lnj;} NSLog(@"%@ %@ %@", [dict2 objectForKey:@"name"], [dict2 objectForKey:@"age"], [dict2 objectForKey:@"height"]); //NSDictionary *dict3 = @{key:value};
NSDictionary *dict4 = @{@"name": @"lnj"};
NSLog(@"%@", dict4[@"name"]); NSDictionary *dict5 = @{@"name":@"lnj", @"age":@"", @"height":@"1.75"};
NSLog(@"dict5 = %@", dict5);//{age = 30;height = "1.75";name = lnj;}
NSLog(@"%@ %@ %@", dict5[@"name"], dict5[@"age"], dict5[@"height"]); // 2.字典的遍历
NSDictionary *dict6 = @{@"name":@"lnj", @"age":@"", @"height":@"1.75"};
// 2.1如何获取字典中key和value的个数, 在字典中key称之为键, value称之为值
NSLog(@"count = %lu", [dict6 count]); for (int i = ; i < dict6.count; ++i) {
// 获取字典中所有的key
NSArray *keys = [dict6 allKeys];
// 取出当前位置对应的key
NSLog(@"%@", keys[i]);
NSString *key = keys[i];
NSString *value = dict6[key];
NSLog(@"key = %@, value = %@", key, value);
} // 如何通过forin遍历字典, 会将所有的key赋值给前面的obj
for (NSString *key in dict6) {
NSLog(@"%@", key);
NSString *value = dict6[key];
NSLog(@"key = %@, value = %@", key, value); } [dict6 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"key = %@, value = %@", key, obj);
}]; // 3.字典文件读写
NSDictionary *dict7 = @{@"name":@"lnj", @"age":@"", @"height":@"1.75"};
// XML 扩展名plist
[dict7 writeToFile:@"/Users/mctc/Desktop/a.plist" atomically:YES]; // 注意: 字典和数组不同, 字典中保存的数据是无序的
NSDictionary *newDict8 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/mctc/Desktop/a.plist"];
NSLog(@"%@", newDict8);// {age = 30;height = "1.75";name = lnj;} NSArray *arr9 = @[@, @, @, @];
[arr9 writeToFile:@"/Users/mctc/Desktop/a.plist" atomically:YES]; return ;
}

oc75--不可变字典NSDictionary的更多相关文章

  1. OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法

    字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 ...

  2. NSDictionary字典创建,获取,遍历,可变字典的删除 - iOS

    字典是以键值对的形式来存储数据 key value 1 NSDictionary 字典 1.1 创建字典,不可变的 NSDictionary * dic = [NSDictionary diction ...

  3. 字典NSDictionary以及NSMutableDictionary的用法总结

    做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便.在Objective-C语言中 词典 ...

  4. Foundation框架--字典( NSDictionary NSMutableDictionary )

    基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典. 不可变字典 #i ...

  5. objective-c可变字典

     1 #pragma mark *****************************字典********************************  2 //        字典:通过ke ...

  6. iOS - 字典(NSDictionary)

    1. 字典类型的常用处理 //---------------不可变字典 //1.字典的创建 NSArray *array1 = [NSArray arrayWithObjects:@"zha ...

  7. OC基础 可变字典与不可变字典的使用

    OC基础 可变字典与不可变字典的使用 1.不可变字典 1.1创建不可变字典 //创建字典 //注意: //1,元素个数是偶数 //2,每两个元素是一个键值对 //3,值在前,键在后 NSDiction ...

  8. Objective-C 字典、可变字典

    字典相当于c++ stl中的map 字典NSDictionary #import <UIKit/UIKit.h> #import "AppDelegate.h" int ...

  9. iosOC不可变字典和可变字典

    //key 和 value 都属于(id)对象类型 //key常用字符串NSString来表示 //存储数值型 一般可用 NSString //int  age ->@(age) //  [di ...

随机推荐

  1. Python游戏开发:pygame游戏开发常用数据结构

    一.数组与列表 数组可以理解为简化的列表.像我们之前使用的pygame.sprite.Group这样的精灵组,也是一个列表.列表的元素是可变的,它具有添加.删除.搜索.排序等多种方法. 1.一维列表 ...

  2. form表单传输多余参数

    1.使用post提交表单,同时在form的action属性后添加“?参数=参数值”,经验证,可行,但是在浏览器中看不到该参数在form参数中,如下图: 上图未出现courseId属性,form代码如下 ...

  3. typora_test

    加粗标题 加下标线 <!--aba--> #Include ![](C:\Users\123\Pictures\Saved Pictures\1.jpg) ![](http://gyz.g ...

  4. 通过docker-composer启动容器nginx,并完成spring.boot的web站点端口转发

    前面已经讲过2篇基于docker的mysql.redis容器编排并启动.这次将练习下nginx的docker方式的部署,以及通过nginx去代理宿主主机上的Web服务应该怎么配 PS:(这里由于ngi ...

  5. java容器(数组和集合)内元素的排序问题

    package com.janson.day20180827; import java.util.*; /** * java中容器内对象的排序可以通过Collections.sort()和Arrays ...

  6. vcenter6.5安装问题

    vcenter6.5 有2个安装包1个vim (windows系统)   1个vcsa(linux) 安装vcsa遇到如下问题: 1.版本bug 网上一般找到的镜像是VMware-VCSA-all-6 ...

  7. windows下通过navicat for mysql连接centos6.3-64bit下的MySQL数据库

    一.centos下MySQL安装 按照命令依次安装以下文件: mysql-devel 开发用到的库以及包含文件 mysql mysql 客户端 mysql-server 数据库服务器 yum inst ...

  8. nyoj 93 汉诺塔(三)(stack)

    汉诺塔(三) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度 ...

  9. spring历史地址

    http://repo.spring.io/release/org/springframework/spring/

  10. 阿里maven仓库配置

    修改conf文件夹下的settings.xml文件,添加如下镜像配置: <mirrors> <mirror> <id>alimaven</id> < ...