Objective-C基础——字典
来源:互联网 发布:如何破解无壳网络验证 编辑:程序博客网 时间:2024/05/20 02:23
一、NSDictionary
1> NSDictionary(字典)通常在给定一个关键字(通常是一个NSString字符串)下存储一个数值(可以是任何类型的对象)。然后你可以使用这个关键字查找相应的数值;2> NSDictionary
key ---->value
索引 ---->文字内容
里面存储的东西都是键值对
3> 常用方法:
//NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"]; NSArray *keys = @[@"name",@"address"]; NSArray *objects = @[@"jack",@"北京"]; NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; id obj = [dict objectForKey:@"address"]; NSLog(@"%@",obj);
/* NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"jack",@"name",@"北京",@"address", nil]; */ NSDictionary *dict = @{@"name" : @"jack",@"address" : @"北京"}; //id obj = [dict objectForKey:@"address"]; id obj = dict[@"name"]; NSLog(@"%@",obj);
注意编译器特性所带来的代码简化
二、NSMutableDictionary
1> 创建新的NSMutableDictionary对象,向类NSMutableDictionary发送dictionary消息;2> NSMutableDictionary继承自NSDictionary;
3> NSMutableDictionary可变字典,NSDictionary不可变字典;
4> 常用方法:
添加键值对\元素:
NSMutableDictionary *dict = [NSMutableDictionary dictionary]; //添加键值对 [dict setValue:@"Jack" forKey:@"name"]; [dict setValue:@"北京" forKey:@"address"];注意
[dict setValue:@"rose" forKey:@"name"];执行该代码之后Jack会被覆盖;
移除键值对
[dict removeObjectForKey:<#(id)#>]
字典的打印
NSString *str = dict[@"name"]; NSLog(@"%@",str);键值 = 对象
三、字典的遍历
for循环
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); }
注意字典是无序的
字典不允许有相同的key,但允许有相同的value(object)
block
NSDictionary *dict = @{ @"address" : @"北京", @"name" : @"jack", @"name2" : @"jack", @"name3" : @"jack", @"qq" : @"7657567765"}; [dict enumerateKeysAndObjectsUsingBlock:(id key, id obj, BOOL *stop) { NSLog(@"%@ - %@", key, obj); // *stop = YES;
四、集合的总结
集合1.NSArray\NSMutableArray
* 有序
* 快速创建(不可变):@[obj1, obj2, obj3]
* 快速访问元素:数组名[i]
2.NSSet\NSMutableSet
* 无序
3.NSDictionary\NSMutableDictionary
* 无序
* 快速创建(不可变):@{key1 : value1, key2 : value2}
* 快速访问元素:字典名[key]
集合小补充,看懂
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);
0 0
- Objective-C基础——字典
- Objective-C(十三、字典类)——iOS开发基础
- objective-C基础----字典,集合
- Objective-C基础之字典
- iOS基础——Objective-C基础
- Objective-c学习笔记06——字典与集合
- 黑马程序员——Objective-C学习之遍历字典
- Objective-C语言——NSDictionary不可变字典
- Objective-C语言——NSMutableDictionary可变字典
- Objective-C ,ios,iphone开发基础:NSDictionary(字典) 和 NSMutableDictionary
- objective-c 编程基础(3.7 Foundation框架之字典)
- objective-c dictionary(字典)
- objective-c dictionary(字典)
- objective-c字典
- Objective-C 字典小结
- objective-c NSDictionary(字典)
- Objective-C 字典
- Objective-c-字典使用
- 7-3
- sizeof() operator demo
- Eclipse CDT "for loop initial declaration used outside C99 mode" 解决办法
- 智力题
- Java环境搭建若干问题
- Objective-C基础——字典
- stl源码剖析 详细学习笔记heap
- 面试题积累(五)
- Java 解惑阅读笔记 第10章(部分)
- redo & undo
- more about AngularJS
- 临时记录
- list_to_atom与list_to_existing_atom区别
- cocos2dx-多点触控