NSDate,NSNumber,NSValue
NSDate
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //通过date方法创建的时间对象,对象就保存了当前的时间; /* NSDate *now=[NSDate date]; NSLog(@"%@",now); //在now的基础上追加多少秒 // NSDate *date= [now dateByAddingTimeInterval:10]; // NSLog(@"date=%@",date); //获取当前所处的失去 // NSTimeZone *zone=[NSTimeZone systemTimeZone]; //获取当前时区和指定时区的时间差 // NSInteger second= [zone secondsFromGMTForDate:now]; // NSLog(@"%lu",second); NSData *newDate=[now dateByAddingTimeInterval:28800]; NSLog(@"%@",newDate); */ //格式化时间 // NSDate *now=[NSDate date]; // NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; // formatter.dateFormat=@"yyyy年MM月dd日 HH时mm分ss秒 Z"; // // NSString *str= [formatter stringFromDate:now]; // NSLog(@"%@",str); //NSString -》NSDate // NSDate *now=[NSDate date]; // NSLog(@"%@",now); //把字符串转化为NSDate格式 那么dateFormat的格式,必须和字符串的时间格式一致,否则可能转换失败 NSString *str=@"2016-01-09 06:46:34 +0000"; NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; // formatter.dateFormat=@"yyyy-MM-dd HH:mm:ss Z"; NSDate *date=[formatter dateFromString:str]; NSLog(@"%@",date); } return 0; }
NSNumber
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int age=10; int number=5; int value=6; //NSNumber的声明 NSNumber *ageNumber=[NSNumber numberWithInt:age]; NSNumber *numberN=[NSNumber numberWithInt:number]; NSNumber *valueV=[NSNumber numberWithInt:value]; NSArray *arr=@[ageNumber,numberN,valueV]; // NSLog(@"%@",arr); for (NSArray *A in arr) { NSLog(@"%@",A); } //把NSNumber类型的数据转换成基本数据类型 int temp=[ageNumber intValue]; NSLog(@"%d",temp); //简写 // NSNumber *temp1=@(age); // NSLog(@"%@",temp1); // NSNumber *temp=@210.10; // NSLog(@"%@",temp); } return 0; }
3.NSValue
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { typedef struct{ int age; char *name; double height; }Person; Person p={30,"qll",1.72}; //利用NSValue包装常用结构体 // CGPoint point =NSMakePoint(10, 20); // NSValue *value=[NSValue valueWithPoint:point]; // NSArray *arr=@[value]; // NSLog(@"%@",arr); //<#(nonnull const void *)#>表示要包装数据类型的地址,而<#(nonnull const char *)#>表示要包装的数据类 //书写的固定格式为@encode() NSValue *v=[NSValue valueWithBytes: &p objCType:@encode(Person)]; NSArray *arr=@[v]; NSLog(@"%@",arr); //从已经包装好的数据类型中取出数据 Person res; [v getValue:&res]; NSLog(@"age=%d,name=%s,height=%f",res.age,res.name,res.height); }; return 0; }