NSNumber 和 NSDate 和NSValue 和 NSSet

来源:互联网 发布:韩顺平php百度云 编辑:程序博客网 时间:2024/04/28 10:08

NSNumber 和 NSDate 和NSValue 和 NSSet    :

NSNumber :       

 //专门包装数据类型,把他们存储为对象

        NSNumber *intN =[[NSNumber alloc]initWithInt:5];

        NSLog(@"%@",intN);

        NSNumber *floatN=[[NSNumber alloc]initWithFloat:5.0];

        NSLog(@"%@",floatN);

        NSNumber *doubleN=[[NSNumber alloc]initWithDouble:9.23];

        NSLog(@"%@",doubleN);

        NSNumber *charN=[[NSNumber alloc]initWithChar:'K'];

        

        //把对象转化为相对应的数据类型

        char c = [charN charValue];

        NSLog(@"%c",c);

        

        int a=[intN intValue];

        NSLog(@"%i",a);

        

        float f=[floatN floatValue];

        NSLog(@"%f",f);

        

        double d=[doubleN doubleValue];

        NSLog(@"%f",d);


        //判断两个对象是否相等

        //isEqualToNumber对象比较,只是比较值是否相等。

        NSNumber *intN1=[[NSNumber alloc]initWithInt:5];

        

        if ([intN isEqualToNumber:intN1]) {

            NSLog(@"相等");

        }

        else

            NSLog(@"不相等");

        //判断两个对象是否相等,数据类型可以不同,比较值相等。枚举类型返回值就是-101三种

        //compare

        if ([intN compare:floatN]== NSOrderedAscending) {

            NSLog(@"<");

            

        }else if ([intN compare:floatN] == NSOrderedSame)

            NSLog(@"=");

        else

            NSLog(@">");

        

        //isEqualToValue对象比较 ,数值和类型都想等返回YES

        

        if ([intN isEqualToValue:floatN]){

            NSLog(@"相等");

        }

        else

            NSLog(@"不相等");

//=============================================

        NSDate 包装时间,把日期,时间包装成oc对象

        

        //创建日期对象

        

        NSDate *date1=[NSDate date];

        

        //打印当前时间(取得是0时区的时间,格林威治时间,也叫世界时间,北京是东八区,所以和北京时间相差8小时)

        

        NSLog(@"%@",date1);

        

        //创建一个date2, date1要晚五秒钟,默认是  

        

        NSDate *date2=[NSDate dateWithTimeInterval:5 sinceDate:date1];

        NSLog(@"%@",date2);

        

        //date21970年相差多少秒,返回值是double型的

        

        NSTimeInterval s1= [date2 timeIntervalSince1970];

        NSLog(@"%f",s1);

        

        //两个时间对象相比,相差多少秒,[date1 timeIntervalSinceDate:date2];

        

        NSLog(@"%f", [date1 timeIntervalSinceDate:date2]);

 

        //date转换成字符串

        

        NSDate *date3=[NSDate date];

        

        NSDateFormatter *formater=[[NSDateFormatter alloc]init];

        

        /*

          y :年  M  :月   d: 

          h (H):   m  :   s :秒

         如果时12小时是:h,如果时24小时的话是 H

         

         201412-12 1:1:1

        formater.dateFormat=@"yyyy/MM/dd HH:mm:ss";

        NSString *dateStr3=[formater stringFromDate:date3];

        

        //打印出的是北京时间

        

        NSLog(@"%@",dateStr3);

     

         //把字符串转化成 date

        

        NSString *str4=@"2012/12/12 1:12:12";

        NSDateFormatter *formater1=[[NSDateFormatter alloc]init];

        

        //打印出来是世界时间

        

        formater1.dateFormat=@"yyyy/MM/dd HH:mm:ss";

        NSDate *date4=[formater1 dateFromString:str4];

        NSLog(@"%@",date4);

        

        //比较两个日期的早晚

        

        NSDateFormatter *formater5=[[NSDateFormatter alloc]init];

        formater5.dateFormat=@"yyyy/MM/dd HH:mm:ss";

        NSString *str5=@"2012/12/12 1:12:12";

        NSString *str6=@"2012/12/12 1:12:13";

        NSDate *date51=[formater5 dateFromString:str5];

        NSDate *date52=[formater5 dateFromString:str6];

        

        //比较两个日期是否相同

        [date51 isEqualToDate:date52];

        

        //比较

        

        if ( [date51 compare:date52]==NSOrderedAscending) {

            

            NSLog(@"NSOrderedAscending 升序: date51date52要早");

            

        }else if([date51 compare:date52]==NSOrderedSame){

            

            NSLog(@"NSOrderedSame 相同");

            

        }else if([date51 compare:date52]==NSOrderedDescending){

            

            NSLog(@"NSOrderedDescending 降序:date51date52要晚");

        }

   

 //NSValue    包装结构体,变成oc对象

        

        //把结构体包装成value对象

        CGPoint point=CGPointMake(1010);

        

        NSValue *value=[NSValue valueWithPoint:point];

        

        NSArray *ary=@[value];

        

        NSLog(@"point==%@",ary);

        

         //value对象包装成结构体

        

        NSPoint point1=[value pointValue];

        

        NSLog(@"%lf %lf",point1.x,point.y);

        /*

         NSSet 集合,存储oc对象,int float double char,枚举,结构体,都不可以忘里面存储,必须包装成对象存进去。

         NSSet 没有顺序,NSArray 有顺序的

         

         相同:1:都用来存放oc对象

            2:都不可以存放基本数据类型,int float double char,枚举,结构体。

            3:本身都是不可变的,但是都有一个可变的子类

            4:

         区别:  1NSArry是有顺序的,NSSet是没有顺序的

                2:NSSet里面的元素是不可以重复的。

         

         */

        //创建一个空的set,不可以添加元素。

        NSSet *set1=[NSSet set];

        

        //创建一个set集合,里面有一个元素。

        NSSet *set2=[NSSet setWithObject:@"abc"];

        

        //创建一个集合,里面放多个元素

        

        Car *car1=[[Car alloc]init];

        Car *car2=[[Car alloc]init];

        

        NSSet *set3=[NSSet setWithObjects:car1,car2,@"ccc",nil];

        

        //获得set 中的元素个数

        

       NSUInteger count =set3.count;// [set count];

        

        //打印set,没有顺序的打印,其中的元素位置不确定。

        

        NSLog(@"%@,%lu",set3,count);

        

        //获取set中全部元素

        

        NSArray *ary1=[set3 allObjects];

        

        NSLog(@"%@",ary1);

        

        //取其中的一个元素,集合没有顺序。随机取一个对象即可

        

        [set3 anyObject];

        

        //集合中是否包含某个元素

        if ([set3 containsObject:@"ccc"]) {

            NSLog(@"set中包含该对象");

        }

        else{

            NSLog(@"set中包含该对象");

        }

        //======================================================

        //NSMutableSet  可变的集合

        

        //初始化可变的集合

        

        NSMutableSet * set4=[NSMutableSet set];

        

        //添加元素

        

        [set4 addObject:@"oc"];

        

        //添加一个数组中的元素添加到集合中

        

        [set4 addObjectsFromArray:@[@"jereh",@"ios"]];

         

        NSLog(@"%@",set4);

        

      

        //删除元素

        

         //清空和某个固定对象

        

        [set4 removeObject:@"ios"];

        NSLog(@"%@",set4);

        

        [set4 removeAllObjects];

        NSLog(@"%@",set4);

        

        //遍历set,for循环 -快速循环

        

        NSMutableSet *set5=[NSMutableSet setWithObjects:@"ios",@"oc",@"c",nil];

        for(id obj in set5){

            NSLog(@"%@",obj);

        }

      


 

 

 

0 0
原创粉丝点击