void number() {
// 将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);
}
void value() {
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;
void value2() {
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);
}
void dateCreate() {
// date方法返回的就是当前时间(now)
NSDate *date = [NSDate date];
// now: 11:12:40
// date: 11:12:50
date = [NSDate dateWithTimeIntervalSinceNow:10];
// 从1970-1-1 00:00:00开始
date = [NSDate dateWithTimeIntervalSince1970:10];
// 随机返回一个比较遥远的未来时间
date = [NSDate distantFuture];
// 随机返回一个比较遥远的过去时间
date = [NSDate distantPast];
NSLog(@"%@", date);
}
void dateUse() {
NSDate *date = [NSDate date];
// 返回1970-1-1开始走过的毫秒数
NSTimeInterval interval = [date timeIntervalSince1970];
// 跟其他时间进行对比
// [date timeIntervalSinceDate:<#(NSDate *)#>];
NSDate *date2 = [NSDate date];
// 返回比较早的那个时间
[date earlierDate:date2];
// 返回比较晚的那个时间
[date laterDate:date2];
}
void dateFormat() {
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);
[formatter release];
}