oc75--不可变字典NSDictionary
//
// 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的更多相关文章
- OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法
字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 ...
- NSDictionary字典创建,获取,遍历,可变字典的删除 - iOS
字典是以键值对的形式来存储数据 key value 1 NSDictionary 字典 1.1 创建字典,不可变的 NSDictionary * dic = [NSDictionary diction ...
- 字典NSDictionary以及NSMutableDictionary的用法总结
做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便.在Objective-C语言中 词典 ...
- Foundation框架--字典( NSDictionary NSMutableDictionary )
基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典. 不可变字典 #i ...
- objective-c可变字典
1 #pragma mark *****************************字典******************************** 2 // 字典:通过ke ...
- iOS - 字典(NSDictionary)
1. 字典类型的常用处理 //---------------不可变字典 //1.字典的创建 NSArray *array1 = [NSArray arrayWithObjects:@"zha ...
- OC基础 可变字典与不可变字典的使用
OC基础 可变字典与不可变字典的使用 1.不可变字典 1.1创建不可变字典 //创建字典 //注意: //1,元素个数是偶数 //2,每两个元素是一个键值对 //3,值在前,键在后 NSDiction ...
- Objective-C 字典、可变字典
字典相当于c++ stl中的map 字典NSDictionary #import <UIKit/UIKit.h> #import "AppDelegate.h" int ...
- iosOC不可变字典和可变字典
//key 和 value 都属于(id)对象类型 //key常用字符串NSString来表示 //存储数值型 一般可用 NSString //int age ->@(age) // [di ...
随机推荐
- Python游戏开发:pygame游戏开发常用数据结构
一.数组与列表 数组可以理解为简化的列表.像我们之前使用的pygame.sprite.Group这样的精灵组,也是一个列表.列表的元素是可变的,它具有添加.删除.搜索.排序等多种方法. 1.一维列表 ...
- form表单传输多余参数
1.使用post提交表单,同时在form的action属性后添加“?参数=参数值”,经验证,可行,但是在浏览器中看不到该参数在form参数中,如下图: 上图未出现courseId属性,form代码如下 ...
- typora_test
加粗标题 加下标线 <!--aba--> #Include  内元素的排序问题
package com.janson.day20180827; import java.util.*; /** * java中容器内对象的排序可以通过Collections.sort()和Arrays ...
- vcenter6.5安装问题
vcenter6.5 有2个安装包1个vim (windows系统) 1个vcsa(linux) 安装vcsa遇到如下问题: 1.版本bug 网上一般找到的镜像是VMware-VCSA-all-6 ...
- windows下通过navicat for mysql连接centos6.3-64bit下的MySQL数据库
一.centos下MySQL安装 按照命令依次安装以下文件: mysql-devel 开发用到的库以及包含文件 mysql mysql 客户端 mysql-server 数据库服务器 yum inst ...
- nyoj 93 汉诺塔(三)(stack)
汉诺塔(三) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度 ...
- spring历史地址
http://repo.spring.io/release/org/springframework/spring/
- 阿里maven仓库配置
修改conf文件夹下的settings.xml文件,添加如下镜像配置: <mirrors> <mirror> <id>alimaven</id> < ...