OC基础 -- 集合 和 常见对象

来源:互联网 发布:时间碎片软件 编辑:程序博客网 时间:2024/05/21 20:48

集合

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];


0 0
原创粉丝点击