------- IOS培训、android培训、期待与您交流! --------
由于OC集合中不能存放普通数据类型,所以如果集合中想要存放普通数据类型的值,那么就需要把普通数据类型转换成OC对象类型的数据来进行存放。这时候我们就需要用到了NSNumber,
NSNumber可以将任何基本的数据类型装换成对象通过如下的方法
NSNumber * num = [NSNumber NumberWithInt:10];
NSNumber可以转换的数据类型有Int ,double,float,char,Bool,long,long long也可以将对象类型转换成基本数据类型
[num IntValue];就可以将num对象的类型转换成int类型.
对于基本数据类型可以快速包装成对象类型,通过如下方式,如包装int类型@24,包装double类型 @5.8,包装成字符类型@‘a’等等。
对于基本类型的变量也是可以包装的,如通过下面的方式
int a =10;
NSNumber * num = @(age);
对于变量名必须用小括号括起来,表示取其中的值然后再进行包装。
对于非基本类型的数据NSNumber不能进行包装,必须通过NSValue来进行包装,NSNumber之所以能进行包装,也是因为它集成了NSValue。
使用NSValue来包装NSPoint等通过如下的函数
NSValue * value = [NSValue valueWithPoint:NSMakePoint(12, 21)];
也可以将结Value对象变回结构体
[value PointValue];
NSDate的使用
NSDate的创建通过如下的方式
NSDate * date = [NSDate date];
这样创建的时间是执行当前代码的时间,默认是0时区的时间。
可以通过方法创建一个比当前时间晚若干秒的一个时间,如下:
NSDate *date = [NSDate date];
NSDate * date2 = [NSDate dateWithTimeInterval:20 sinceDate:date];
在手机上显示时间,经常需要将NSDate类型的对象转换成字符串,可以通过如下的方式进行转换
要将时间转成字符串,首先要为时间类型的字符串设置一个格式,这个时候就要使用formater函数
NSDate *date = [NSDate date];
NSDateFormatter *fomatter = [[NSDateFormatter alloc] init];
fomatter.dateFormat = @"yyyy-MM-dd HH-mm-ss";
NSString * str = [fomatter stringFromDate:date];
也可以将字符串类型的时间转换成一个NSDate对象
NSString * timer =@"2009-12-08 12:21";
NSDateFormatter * formateer = [[NSDateFormatter alloc] init];
formateer.dateFormat = @"yyyy-MM-dd HH-mm";
NSDate * date = [formateer dateFromString:timer];