集合
NSArray:不可变数组,有序
NSMutableArray:可变数组 ,继承自NSArray
OC数组:只能存储OC对象,不能存放非OC对象类型,int enum struct
NSArray *array = @[@"a",@"b",nil]; // 这个方法返回的是NSArray;是不可变的
int count = array.count;
array[index];
[mutArray addObject:@"NSArray没有这个方法"];
NSSet:
NSMutableSet:
和NSArray区别:无顺序
NSDictionary:存储键值对, 无序
NSMutableDictionary:
NSDictionary *dict = @{@"name1":@"jack",@"name2":rose};// 这个方法返回的是NSDictionary
NSString *str = dict[@"name1"];
NSArray *keys = [dict allKeys];
字典不允许有相同键,可以有相同值,字典是无序的
NSNumber 和 NSValue
NSNumber 继承自 NSValue
在很多时候,比如将数据存放到字典或者数组集合,需要的是OC对象而非基本数据类型,所以才有了NSNumber
》基本数据类型和对象转换
//快速包装 :
NSNumber *intObj = @30;
int age = 10;
NSNumber *intObj = @(age);
NSNumber *intObj= [NSNumber numberWithInt:10];// 基本转对象
int i = [intObj intValue];// 对象转基本
》基本数据类型和字符串转换
NSString *str = [NSString stringWithFormat:@"%d",20];
int strInt = [@"100" intValue];
》结构体和OC对象
CGPoint p = CGPointMake(10,10);
NSValue *value = [NSValue valueWithPoint:point];// 结构体转对象
CGPoint point = [value pointValue];// value对象转成结构体
NSDate
时间可以用结构体包装,也可以用对象来描述,调用时间方法的话只能使用NSDate
》日期对象格式化成字符串
NSDate *date = [NSDate date];
NSDateFormatter *format = [[NSDateFormat alloc] init];
format.dateFormat = @"yyyy-MM-dd HH-mm-ss";
NSString *str = [format stringFromDate:date];
》将字符串格式化成日期对象
NSString *strDate = @"2009-11-01";
NSDateFormatter *format = [[NSDateFormat alloc] init];
format.dateFormat = @"yyyy-MM-dd";// 必须和strDate格式相同
NSDate *date = [format dateFromString:strDate];