【黑马程序员】-Foundation框架-集合及其它
来源:互联网 发布:现代散文鉴赏辞典知乎 编辑:程序博客网 时间:2024/05/17 08:26
-------<a href="http://www.itheima.com"target="blank">android培训</a>、<a href="http://www.itheima.com"target="blank">java培训</a>、期待与您交流! ----------
一、NSDictionary/NSMutableDictionary
1、NSDictionary不可变字典
基本创建类型及其获取:
//创建一个字典对象,不可变 NSDictionary *dic = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"]; id obj = [dic objectForKey:@"name"]; //查找对象 //快速创建字典方式,注意字典中的对象也是无序的 NSDictionary *dic1 = @{@"name":@"jack", @"address":@"北京"}; id obj1 = dic[@"name"]; //快速提取对象 NSArray *key1 = @[@"name", @"address"]; NSArray *value1 = @[@"jack", @"北京"]; NSDictionary *dic3 = [NSDictionary dictionaryWithObjects:value1 forKeys:key1];字典中的数据都是以键值对存储的,因此里边的数据都是成对存在的。在字典中不允许有相同的key,但是可以有相同的value。
2、NSMutableDictionary
基本创建类型:
NSMutableDictionary *dic2 = [NSMutableDictionary dictionary]; [dic2 setObject:@"jack" forKey:@"name"]; //添加字典内容 [dic2 setObject:@"rose" forKey:@"name"]; //会覆盖掉之前的jack NSLog(@"%@", dic2[@"name"]); //输出是rose [dic2 removeObjectForKey:@"name"]; //删除字典元素3、字典遍历
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]){ NSArray *key1 = @[@"name", @"address", @"qq"]; NSArray *value1 = @[@"jack", @"北京", @"234928340"]; NSDictionary *dic3 = [NSDictionary dictionaryWithObjects:value1 forKeys:key1]; //遍历方法1 NSArray *keys = [dic3 allKeys]; //获取字典的所有关键字的方法 for (int i = 0; i <dic3.count; i++) { NSString *key = keys[i]; NSString *value = dic3[key]; NSLog(@"%@ - %@", key, value); } //遍历方法2 [dic3 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { NSLog(@"%@ - %@", key, obj); }]; return 0;}二、集合总结
(1)NSArray/NSMutableArray
*有序;
*快速创建方式:@[ ];(不可变)
*快速访问方式:数组名[ ]
(2)NSSet/NSMutableSet
*无序
(3)NSDictionary/NSMutableDictonary
*无序
*快速创建方式为:@{ };(不可变字典)
*快速访问方式:字典名[key]
(4)数组中可以包含字典
例如创建一个数组:
NSArray *person = @[@{@"name":@"jack"}, {@"address":@"北京"}, {@"qq":@"239847982"}];
NSString *p1Name = person[1][@"address"]; //提取数组中字典的元素
三、NSNumber:存放基本数据类型(只能包装数字)。
由于在数组中存储的数据都是oc对象,所以当要想将基本数据类型存到数组中时应该怎么办?NSNumber可以对数字类型进行封装,然后装到数组中。
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]){ NSNumber *num = [NSNumber numberWithInt:20]; NSNumber *num1 = [NSNumber numberWithChar:'a']; //定义一个数组,要求传入年龄 NSArray *array = @[num, num1]; //传入两个NSNumber NSLog(@"%@", array); NSDictionary *dic = @{@"name":@"jack", @"age":num}; NSDictionary *dic2 = @{@"name":@"jack", @"age":@20}; //快速创建出NSNumber类型 //快速取出字典中的数字 NSNumber *num2 = dic[@"age"]; int a = [num2 intValue]; //将数据转换成int型 NSLog(@"%d", a); return 0;}注意:@'a':表示NSNumber对象,@"a":表示NSString对象
四、NSDate存放时间
基本定义形式
//NSDate创建 NSDate *date = [NSDate date]; //时间是调用这条指令时的时间,而且是格林时间。 //5表示的时5秒 NSDate *date1 = [NSDate dateWithTimeInterval:5 sinceDate:date]; int a = [date1 timeIntervalSince1970]; //计算从1970年到date1一共有多少秒日期格式化:
//创建一个时间格式对象 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; //规定时间的输出格式 formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; //将时间转换成字符串 NSString *str = [formatter stringFromDate:date1]; //输出时间字符串 NSLog(@"%@", str);五、NSValue
其实NSNubmber继承NSValue,相对于NSNumber,NSValue拥有包装的范围更广,包括结构体、指针等。
-------<a href="http://www.itheima.com"target="blank">android培训</a>、<a href="http://www.itheima.com"target="blank">java培训</a>、期待与您交流! ----------
- 【黑马程序员】-Foundation框架-集合及其它
- 黑马程序员---OC Foundation框架--集合类
- 黑马程序员------[Foundation]Foundation框架
- 黑马程序员-Foundation框架
- 黑马程序员-----Foundation框架
- 黑马程序员---Foundation框架
- 黑马程序员 Foundation框架
- 黑马程序员---Foundation框架
- 【黑马程序员】-Foundation框架
- 黑马程序员--Foundation框架
- [黑马程序员][OC]Foundation框架中的集合类
- 黑马程序员—09Foundation框架_集合01
- 黑马程序员—10Foundation框架_集合02
- 黑马程序员------Foundation框架------OC集合类的操作
- 黑马程序员——Foundation框架:字符串之集合类
- 黑马程序员 第三篇 Java 集合框架 (Foundation; completed)
- 黑马程序员——Foundation框架字典、集合类、反射
- 黑马程序员-Foundation框架-NSArray
- scrollview+pagecontrol实现滑动界面
- IOS学习之Cocoapods使用
- linux 使用FIO测试磁盘iops
- java调用IP138获取本机IP以及通过IP地址获取区域名称
- treeset源码导读
- 【黑马程序员】-Foundation框架-集合及其它
- 中国环保产业链大数据解读
- Android开发实例-高校录取分数线应用(二)
- ==运算符和equal()方法
- Python爬虫爬取百度搜索结果——邮箱地址
- python学习笔记-(15)python中的循环对象
- leetcode_101_Symmetric Tree
- android客户端学习-反编译
- 理解RESTful架构