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

来源:互联网 发布:mac拼音怎么打 编辑:程序博客网 时间:2024/05/17 03:59

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

0 0
原创粉丝点击