iOS开发之oc(二十)--Foundation(5)NSDictionary
/*
集合
1.NSArray\NSMutableArray
•有序
•快速创建(不可变):@[obj1, obj2, obj3]
•快速访问元素:数组名[i]
2.NSSet\NSMutableSet
•无序
3.NSDictionary\NSMutableDictionary
•无序
•快速创建(不可变):@{key1 : value1, key2 : value2}
•快速访问元素:字典名[key]
*/
NSDictionary:字典
代码示例
1>
void create() { /*字典:key ----> value索引 ----> 文字内容里面存储的东西都是键值对 */// 字典创建方式// NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];// NSArray *keys = @[@"name", @"address"];// NSArray *objects = @[@"jack", @"北京"];// NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];/*NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"jack", @"name",@"北京", @"address",@"32423434", @"qq", nil]; */// 最实用的方法NSDictionary *dict = @{@"name" : @"jack", @"address" : @"北京"};// id obj = [dict objectForKey:@"name"];// 获取值id obj = dict[@"name"];NSLog(@"%@", obj);// 返回的是键值对的个数NSLog(@"%ld", dict.count); }
2> 基本使用
void use1() {NSMutableDictionary *dict = [NSMutableDictionary dictionary];// 添加键值对[dict setObject:@"jack" forKey:@"name"];[dict setObject:@"北京" forKey:@"address"];[dict setObject:@"rose" forKey:@"name"];// 移除键值对// [dict removeObjectForKey:<#(id)#>]; NSString *str = dict[@"name"];//NSLog(@"%@", str); NSLog(@"%@", dict);//NSLog(@"%@", @[@"jack", @"rose"]); }void use2() {NSMutableDictionary *dict = @{@"name" : @"jack"};[dict setObject:@"rose" forKey:@"name"]; }void use3() {// 字典不允许有相同的key,但允许有相同的value(Object)// 字典的无序的NSDictionary *dict = @{@"address" : @"北京",@"name" : @"jack",@"name2" : @"jack",@"name3" : @"jack",@"qq" : @"7657567765"};// NSArray *keys = [dict allKeys];//// for (int i = 0; i<dict.count; i++)// {// NSString *key = keys[i];// NSString *object = dict[key];////// NSLog(@"%@ = %@", key, object);// }// 使用Block来访问 [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {NSLog(@"%@ - %@", key, obj);// *stop = YES; }]; }
#import <Foundation/Foundation.h>int main() {NSArray *persons = @[@{@"name" : @"jack", @"qq" : @"432423423", @"books": @[@"5分钟突破iOS编程", @"5分钟突破android编程"]},@{@"name" : @"rose", @"qq" : @"767567"},@{@"name" : @"jim", @"qq" : @"423423"},@{@"name" : @"jake", @"qq" : @"123123213"}];// NSDictionary *jim = persons[2]; NSString *bookName = persons[0][@"books"][1];NSLog(@"%@", bookName);//NSArray *array = persons[0][@"books"];//NSLog(@"%@", array);// 先取出1位置对应的字典// 再取出字典中qq这个key对应的数据//NSLog(@"%@", persons[1][@"qq"]);// NSLog(@"%@", jim);return 0; }
代码是以前学习时照着李明杰老师的视频敲的,再次,向他表示感谢;李老师说的很好,推荐大家去看,他交的不是编程,而是一种思想,让我受益匪浅。
转载于:https://www.cnblogs.com/iOSteemo/p/4301920.html
iOS开发之oc(二十)--Foundation(5)NSDictionary相关推荐
- ios开发之OC基础-类和对象
ios开发之OC基础-类和对象 本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录 ...
- ios c语言调用oc方法,ios开发之OC基础-类和对象(示例代码)
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
- iOS开发之OC入门(类的使用)
占位符 %p打印指针的值 %@打印指针对应的值,输出的格式:<对象所属的类名:对象的地址> NSLog%@方法调用传入对象的description的方法,拿到该方法的返回值,这个返回值是一 ...
- (0085)iOS开发之OC与JS交互高级用法(JavaScriptCore)
前述:JavaScriptCore你不知道的OC与JS之间交互.OC与JS之间用model实现交互.通讯.传值!好玩! 几乎三年来一直断断续续接触OC与JS交互,每次觉得UIWebView OC与JS ...
- iOS开发之OC入门(类的基础知识)
内存中的五大区域 栈:存储局部变量,局部变量作用域执行完会被立即回收 堆:程序员手动申请的字节空间 malloc calloc realloc BSS段:存储未被初始化的全局变量和静态变量,初始化后回 ...
- 李洪强iOS开发之OC[012] -类的声明实现小结
// // main.m // 11 - 内容总结 // // Created by vic fan on 16/7/9. // Copyright © 2016年 李洪强. All righ ...
- iOS开发之oc(五)--成员变量(实例变量)
(一)1.书写位置 成员变量也叫实例变量,是写在 @interface { // 写在这里的,比如 int _age; } @end 成员变量的命名规范 成员变量都以下划线 _ 开头,好处: 1 ...
- iOS开发之Quartz2D 二:绘制直线,曲线,圆弧,矩形,椭圆,圆
#import "DrawView.h"@implementation DrawView/*** 作用:专门用来绘图* 什么时候调用:当View显示的时候调用* @param re ...
- IOS开发之MD5加密和钥匙串的使用-oc
IOS开发之MD5加密和钥匙串的使用-oc 源码在我的主页,md5加密是用户登录安全的一个保障.不可逆的,可以暴力破解的. // // ViewController.m // MD5演练 // // ...
最新文章
- python做表格计算公式_Python自学Day45 制作Excel报表
- python实现图形旋转_python轻松实现图片旋转
- 手动安装huson插件的做法
- 汇编 debug调试没有执行对应文件源码指令---》失灵---》正确使用debug第一步
- Sublime Text for Mac 最新版安装后,无法搜索到Install Package的解决办法
- mysql中ibdata1过大的问题
- springMVC使用注解方式进行页面跳转
- Ehcache小结(一)
- svg mysql_SVG介绍
- linux 下strstr函数,Linux中strchr与strstr函数实现。
- X1Tablet键盘改造成USB键盘
- 显示器序列号查询方式
- oracle reco进程停止,oracle的后台进程能否杀掉
- 饭店计算机信息管理全章ppt,酒店信息质量管理.ppt
- Xmanager 5 (Windows 远程Centos工具 )
- 魅族手机安装Google Play
- 不管是否情愿,5G要来了,运营商该做的事一样也不能少
- Edraw Max(亿图图示)新手福音:教你思维导图的简单画法! 1
- NOTA-PEG-Lys/CS/HRP/MMPs大环配体-聚乙二醇-溶菌酶/硫酸软骨素/辣根过氧化氢酶/基质金属蛋白酶
- 在Matlab中提取彩图黄色分量