-----Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-----
一、集合类
用来存储多个对象。
1>NSArray
1.只能存储OC对象,不能存放非oc对象
2.它是一个不可变更的数组,创建时有多少个元素,就一直有多少个不能变更。
3.创建:
//NSArray对象
//空数组
NSArray *arr=[NSArray array];
//创建时初始化 只有一个
NSArray *array1=[NSArray arrayWithObject:@"jack"];
//创建多个元素,nil代表元素结束 不能存放nil值
NSArray *array2=[NSArray arrayWithObjects:类名,类名,nil];
//快速创建
NSArray *array3=@[类名,类名,类名];
//元素总数
array.count; 等价 [array count];
//访问某个位置的元素
[array objectAtIndex:索引值];等价 array[索引值];
4.遍历
//方法1.
for(id obj in 数组名)
{
//代码内容
}
//方法2. block
[数组名 enumerateObjectUsingBlock:^(id obj,NSUInteger idx,BOOL *stop)
{
//id obj 表示对象
//NSUInteger idx 表示索引值
//BOOL *stop 表示遍历是否结束
}
]
2>NSMutableArray
1.可变数组
2.创建:
NSMutableArray *array=[NSMutableArray arrayWithObjects:@"jack",@"rose",nil];
//添加元素
//[array addObject:对象名];
[array addObject:@"jim"];
//删除元素
//[array removeAllObjects]; 移除所有的元素
//删除指定的对象
//[array removeObject:对象名]
[array removeObject:@"jim"];
//[array removeObjectAtIndex:索引值];
[array removeObjectAtIndex:2];
3>NSSet
1.数组元素没有顺序
2.不可变
3.创建
NSSet set=[NSSet setWithObjects:@"jack",@"jim",nil];
//数组元素个数
[set count];等价 set.count;
//取值-随机取值
[set anyObject];
4>NSMutableSet
1.特点:无序、可变
2.创建:
NSMutableSet s=[NSMutableSet set];
//添加元素
[s addObject:@"jack"];
//移除元素
[s removeAllObjects];
//2.移除特定对象
[removeObject:@"jack"];
5>NSSet和NsArray对比:
1>共同点
都是集合,都能存放oc对象。
不能存放非oc对象。
2>不同点
NSArray有顺序,NSSet无序。
6>NSDictionary 字典数组
1.功能:key-value 根据key来找值
2.创建:
//1.
NSDictionary *名称=[NSDictionary dictionaryWithObjectsAndKeys:键名,键值,nil];
//2.
NSDictionary *名称=@{键名:键值,键名:键值}
3.示例代码:
NSArray *keys=@[@"name",@"address"];
NSArray *values=@[@"jack",@"北京"];
NSDictionary *dict=[NSDictonary dictonaryWithObjects:values forKeys:keys];
id obj=[dict objectForKey:@"name"];
7>NSMutableDictonary
1.特点:可变
2.创建:
NSMutableDictionary *dic=[NSMutableDictionary dictionary];
//添加键值对,这些键值对是没有顺序的
[dic setObject:@"jack" forKey:@"name"];
[dic setObject:@"北京" forKey:@"address"];
//删除
[dic removeAllObjects]//删除全部
[dic removeObjectForKey:key]//通用key名称进行删除
二、NSNumber、NSValue、NSDate
1>NSNumber
1.用来包装基本数据类型。
2.使用:
NSNumber *n=[NSNumber numberWithInt:1];//将1包装成NSNumber OC类型。
3.被包装后还原基本数据类型
-(char)charValue;
-(int)intValue;
-(float)floatValue;
-(BOOL)boolValue;
-(NSString)stringValue;
4.NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue;
2>NSValue
1.结构体不是oc对象。
2.将结构体包装:
CGpoint p=CGPoint(10,10);
[NSValue valueWithPoint:p];
NSArray *array=@[value];
3.NSValue 可包装任何类型。
3>NSDate
1.它是一个时间类。
2.创建
NSDate *d=[NSDate date];//格林时间
NSLog(@"%@",d);
NSDate *d2=[NSDate dateWithTimeInterval:5 sinceDate:d];//晚
NSLog(@"%@",d2);
//日期格式化
NSDateFormatter *f=[[NSDateFormatter allco]init];
f.formatter=@"yyyy-MM-dd";//yyyy-MM-dd HH:mm:ss
NSString *s= [f stringFormatDate:d];
NSLog(@"%@",s);