当前位置: 首页 > >

??黑马程序员??OC中NSNumber、NSValue、NSDate 的使用总结

发布时间:

-----------android培训、java培训、java学*型技术博客、期待与您交流!-----------


OC中NSNumber、NSValue、NSDate 的使用总结


一、NSNumber的使用
1、NSNumber的作用

可以将基本类型的数据包装成一个对象,可以间接的把基本类型的数据已对象的形式保存进NSArray或者NSDictionary中


2、NSNumber的创建

(1)将int 类型数据包装成对象类型


+(NSNumber *) numberWithInt: (int) value;


(2)将float?类型数据包装成对象类型


+(NSNumber *) numberWithFloat: (float) value;


(3)将double?类型数据包装成对象类型


+(NSNumber *) numberWithDouble: (double) value;


3、将对象类型转化为 基本数据类型

-(int) intValue;


-(float) floatValue;


-(double) doubleValue;


4、NSNumber 的简写形式

int a = 10;


@(变量名) 把数值包装成对象 例如 @(a)


@数值 ?把数值包装成对象 ?例如 @8 ?@YES 也可以


二、NSValue的使用

1、NSValue的作用


NSNumber是NSValue 的子类,用来把指针,CGRect结构体等包装成OC对象,以方便存储


2、将结构体转换为NSvalue对象


+(NSvalue) valueWithPoint: (NSPoint) point;


+(NSvalue) valueWithSize: (NSSize) size;


+(NSvalue) valueWithRect: (NSRect) rect;



// 创建一个结构体变量,


CGPoint p = CGPointMake(10, 20 );


NSRect r = NSMakeRect (0,0,10, 10);


NSValue * pointVal =[NSValue ?valueWithPoint:p];


// 将结构体 r ?转换为对象类型


NSValue ?* rectVal = [ NSValue ?valueWithRect:r?];


获取结构体的值,并且保存在结构体变中


例如 [val ?getValue: &tmd ]; ?从val中取出值并保存在另一结构体 tmd 中


?-(void) getValue:(void *)


3、从NSvalue对象转换为结构体


-(NSPoint) pointValue;


-(NSSize) sizeValue;


-(NSRecr) rectValue;


三、NSDate 的介绍和使用
1、NSDate 的介绍

NSDate 是用来表示时间,进行一些常见的日期、时间的处理的一个类,一个NSDate就代表一个时间


(1)可以获取当前时间

NSDate *d1 = [NSDate ?date]; ??


获取的是0时区(格林威治时间)的当前时间


(2)格式化显示时间

//1/创建一个对象?


NSDateFormat *datef?= [ NSDateFOrmatter ?new ];?


// 2/ 设置日期的显示格式


/*


yyyy表示四位的年份


MM 表示2位的月份


dd 表示2位的天数


HH 表示24小时制 ? ? ? ? hh ?表示12小时制


mm 表示2位的分钟数


ss表示2位的秒数


*/


datef . dateFormat = @"yyy年MM月dd日 HH:mm:ss";


datef . dateFormat = @"yyy年MM月dd日 hh:mm:ss";


datef . dateFormat = @"yyy/MM/dd ?hh:mm:ss";


datef . dateFormat = @"yyy-MM-dd ?hh:mm:ss";


//3/格式化日期


NSString *dateStr = [ datef stringFormatDate:d1 ];


把日期 d1 格式化为一个字符串输出,返回值是一个字符串类型


(3)计算时间

计算明天的时间


// 计算出现在距离明天的秒数


NSTimeInterval ? t ?= ?60*60*24


NSDate *tom = [ NSDate dateWithTimeIntervalSinceNow:t?];


//格式化输出明天的时间


NSString *tomTimStr = [ datef ? stringFormatDate: tom ];


计算昨天的时间时 t 为负数即可实现


(4)日期时间对象的使用

获取一个日期时间中的 年、月、日、时、分、秒


-(NSDatecomponments *)componments: (NSCalendarUnit) unitFlags ?fromDate:(NSDate *) date?


是一个 日期的类,可以快速的获取?年、月、日、时、分、秒


// 获得当前日期


NSDate *d4 = [ NSDate date ];


//创建日期的对象


NSCalendar *cal = [ NSCalendar ?currentCalendar ];


//?从日期d4 中 ?快速的获取?年、月、日


?NSDateComponments * YMD? = ?[ ?cal ? ?componments: NSCalendarUnitYear? | NSCalendarUnitMonth? | ?NSCalendarUnitDay? fromDate:d4 ?];


返回值是一个对象类型的 ?是NSDateComponments * 类型


NSLog(@" 年:%ld ??月:%ld 日:%ld?" , ?YMD.year, YMD.month, ?YMD. day?);



友情链接: