Foundation4,NSNumber,NSValue,NSNull,NSDate
2014-05-17 23:15
477 查看
NSNumber 是NSValu的子类
把int float double 数字类型的包装成OC对象后,能让如Array这类不能放基本数据类型的类中。
其他基本类型的使用方法依次类推
NSValue
封装OC自带的结构体类型。
封装自定义的结构体类型
NSNull
封装一个nil值。
NSDate
日期创建
NSDate的使用
NSDate的日期格式设置
把int float double 数字类型的包装成OC对象后,能让如Array这类不能放基本数据类型的类中。
// 将int类型的10 包装成 一个NSNumber对象 NSNumber *number = [NSNumber numberWithInt:10]; NSLog(@"number=%@", number); NSMutableArray *array = [NSMutableArray array]; // 添加数值到数组中 [array addObject:number]; // 取出来还是一个NSNumber对象,不支持自动解包(也就是不会自动转化为int类型) NSNumber *number1 = [array lastObject]; // 将NSNumber转化成int类型 int num = [number1 intValue]; NSLog(@"num=%i", num);
其他基本类型的使用方法依次类推
NSValue
封装OC自带的结构体类型。
CGPoint point = CGPointMake(10, 10); // 将结构体变量包装成一个对象 NSValue *value = [NSValue valueWithPoint:point]; NSMutableArray *array = [NSMutableArray array]; // 添加value [array addObject:value]; // 取出当时放进去的value NSValue *value1 = [array lastObject]; CGPoint point1 = [value1 pointValue]; BOOL result = CGPointEqualToPoint(point1, point); NSLog(@"result=%i", result);
封装自定义的结构体类型
typedef struct { int year; int month; int day; } Date; Date date = {2013, 4, 7}; // void *代表任何指针 // 这里要传结构体的地址&date // 根据结构体类型生成 对应的 类型描述字符串 char *type = @encode(Date); NSValue *value = [NSValue value:&date withObjCType:type]; // 定义一个结构体变量 Date date1; // 取出包装好的结构体 [value getValue:&date1]; // [value objCType]; 取出类型描述字符串 NSLog(@"year=%i, month=%i, day=%i", date1.year, date1.month, date1.day);
NSNull
封装一个nil值。
// [NSNull null]返回的是同一个单例对象 NSNull *n = [NSNull null]; NSNull *n1 = [NSNull null]; // 对象==对象,判断地址是否相同 NSLog(@"%i", n == n1); // {"id":10, "name":"mj", "descs":null}
NSDate
日期创建
// date方法返回的就是当前时间(now) NSDate *date = [NSDate date]; // now: 11:12:40 // date: 11:12:50 date = [NSDate dateWithTimeIntervalSinceNow:10];// 参数单位是秒,返回比当前时间晚10秒的时间 // 从1970-1-1 00:00:00开始 date = [NSDate dateWithTimeIntervalSince1970:10]; // 随机返回一个比较遥远的未来时间 date = [NSDate distantFuture]; // 随机返回一个比较遥远的过去时间 date = [NSDate distantPast]; NSLog(@"%@", date);
NSDate的使用
NSDate *date = [NSDate date]; // 返回1970-1-1开始走过的毫秒数 NSTimeInterval interval = [date timeIntervalSince1970]; // 跟其他时间进行对比 // [date timeIntervalSinceDate:<#(NSDate *)#>]; NSDate *date2 = [NSDate date]; // 返回比较早的那个时间 [date earlierDate:date2]; // 返回比较晚的那个时间 [date laterDate:date2];
NSDate的日期格式设置
NSDate *date = [NSDate date]; // 2013-04-07 11:14:45 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // HH是24进制,hh是12进制 formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // 设置为北京时间,有一些错误 // formatter.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"] autorelease]; NSString *string = [formatter stringFromDate:date]; NSLog(@"%@", string); // 返回的格林治时间 NSDate *date2 = [formatter dateFromString:@"2010-09-09 13:14:56"]; NSLog(@"%@", date2); // 创建时有alloc,需要release [formatter release];
相关文章推荐
- 黑马程序员_Foundation_NSSet,NSDictionary,NSValue,NSDate,NSNumber
- 黑马程序员—— Foundation框架NSArray、NSSet、NSDictionary、NSNumber、NSDate、NSValue
- 黑马程序员-13-Foundation(NSNumber,NSDate,NSValue)
- OC——Foundation—常用的类(4)——NSNumber、NSValue、NSNull、NSDate
- OC完全解读:Foundation框架下的NSValue,NSNumber ,NSNull,NSData,NSCalendarDate
- Foundation框架下的常用类:NSNumber、NSDate、NSCalendar、NSDateFormatter、NSNull、NSKeyedArchiver
- 黑马程序员——Foundation---NSSet,NSDictionary,NSNumber,NSDate,NSValue
- OC--NSValue、 NSNumber、NSNull、NSDate的使用
- Objective-C之Foundation框架NSNumber、NSNull、NSValue、NSDate用法介绍
- Objective-C边学边记-10:Foundation Kit快速教程之 各种数值(NSNumber,NSValue,NSNull
- Objective-C边学边记-10:Foundation Kit快速教程之 各种数值(NSNumber,NSValue,NSNull
- Foundation框架下的常用类(NSNumber, NSValue, NSDate,NSDateFormatter)
- OC--Foundation-NSDictionary,NSNumber,NSDate,NSValue
- 黑马程序员——foundation框架之NSNumber,NSDate,NSValue
- 黑马程序员——Foundation框架入门:NSNumber,NSValue和NSDate
- iOS中NSNumber,NSValue,NSDate和反射
- Objective-C中使用NSValue、NSNull、NSNumber、NSDecimalNumber、NSData、NSMutableData 小结
- 黑马程序员---Foundation常用类(NSNumber、NSValue、NSDate)
- OC视频笔记4.4(NSNumber的使用方法)4.5(NSValue的使用)(NSNull的使用)
- Foundation框架—NSNumber、NSValue、NSDate