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;
}
原文地址:https://www.cnblogs.com/qianLL/p/5116489.html