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 ...
随机推荐
- chr()返回值是当前整数对应的 ASCII 字符。
#chr() 用一个范围在 range(256)内的(就是0-255)整数作参数,返回一个对应的字符.#返回值是当前整数对应的 ASCII 字符.1 import random input_m =10 ...
- Pytorch 加载保存模型【直播】2019 年县域农业大脑AI挑战赛---(三)保存结果
在模型训练结束,结束后,通常是一个分割模型,输入 1024x1024 输出 4x1024x1024. 一种方法就是将整个图切块,然后每张预测,但是有个不好处就是可能在边界处断续. 由于这种切块再预测很 ...
- C++ 11常见功能介绍:auto,decltype,nullptr,for,lambda
什么是C++11 C++11是曾经被叫做C++0x,是对目前C++语言的扩展和修正,C++11不仅包含核心语言的新机能,而且扩展了C++的标准程序库(STL),并入了大部分的C++ Technical ...
- 洛谷——P3919 【模板】可持久化数组(可持久化线段树/平衡树)
P3919 [模板]可持久化数组(可持久化线段树/平衡树) 题目背景 UPDATE : 最后一个点时间空间已经放大 标题即题意 有了可持久化数组,便可以实现很多衍生的可持久化功能(例如:可持久化并查集 ...
- UVA - 820 Internet Bandwidth(最大流模板题)
题目: 思路: 直接套最大流的模板就OK了,注意一下输出的格式. 代码: #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define M ...
- Vue2.0如何实现父组件与子组件之间的事件发射与接收
关于vue2.0的事件发射和接收,大家都知道$dispatch和$broadcast在vue2.0已经被弃用了,取而代之的是更加方便快捷的方式,使用事件中心,组件通过它来互相通信,不管组件在哪一个层都 ...
- 利用tempalte.js模版引擎渲染页面,作对应的数据处理
需要启个服务 需引入jquery.js和template.js <!DOCTYPE html> <html lang="en"> <head> ...
- Leetcode 115.不同的子序列
不同的子序列 给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数. 一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串.(例 ...
- [codeVS1404] 字符串匹配
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你两个串A,B,可以得到从A的任意位开始的子串和B匹配的长度. ...
- 做ssh框架整合的时候,遇到如下错误:AnnotationTransactionAttributeSource is only available on Java 1.5 and higher
nested exception is java.lang.IllegalStateException: AnnotationTransactionAttributeSource is only av ...