OC基础学习——基本数据类型和复杂数据类型


一、NSNumber类


1、作用:NSNumber能够将c语言中的基本数据类型转化为oc中的对象

2、实例:


  //1.用对象方法将整型数据转化为oc中对象(比如整型,其他基本数据类型方法一样)

       NSNumber *intNum = [[NSNumberalloc]initWithInt:5];

        

       //2.用类方法

        

       NSNumber *intNum1 = [NSNumbernumberWithInt:5];


//3.判断两个对象是否相等,其返还值是bool类型

        

       int result = [intNumisEqualToNumber:intNum1];

        

       NSLog(@"%d",result);//.将判断结果打印


//4.比较,其返还值类型为  

NSComparisonResult{NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};

        

        NSComparisonResult nsResult = [intNumcompare:intNum1];

        

       if(nsResult ==NSOrderedSame)

        {

            NSLog(@"intNum = intNum1");

        }

       elseif (nsResult ==NSOrderedAscending)

        {

            NSLog(@"intNum < intNum1");

        }

        elseNSLog(@"intNum > intNum1");

//5.如果将其还原为基本数据类型

        

       int a  = [intNum1intValue];

二、NSValue(其实是NSNumber的父类)

作用:将复杂的数据类型转化为对象(比如结构体,指针)

实例:


1、

  //1.转化

       CGPoint point1;

        

       NSValue *pointValue1 = [NSValuevalueWithPoint:point1];

        

       //2.还原

        

       CGPoint newPoint1 ;//.先定义新的变量来接受还原的数据

        

        [pointValue1getValue:&newPoint1];


//.指针如何转化

        

       int c =11;

        

       int *new = &c;

        


//.参数1是指针的地址&new,参数2指针的@encode(指针类型)

       NSValue *ne = [NSValuevalue:&newwithObjCType:@encode(int*)];

        

       int * b ;//定义一个新的指针

        

        [negetValue:&b];


三、NSSet(集合)和NSMutableSet NSIndexSet

 //.NSSet(集合)NSArry的区别是NSSet是无序的,数组是有序的

        

        NSSet *set = [[NSSetalloc ]initWithObjects:@"yangjie",@"wangrong",@"goubi",@"rilgou",nil];

        //.NSSet中得元素可以是任意对象,它也是存贮对象的地址

        

        

//        NSSet *set1 = [NSSet setWithObjects:<#(id), ...#>, nil]

        

       NSLog(@"%@",set);

       NSLog(@"%lu",[setcount]);(获取集合的元素的个数)

        

       BOOL ret = [setcontainsObject:@"yangjie"];

       NSLog(@"%d",ret);

        

        //1.判断两个集合是否相等

//        [set isEqual:<#(id)#>]

        //2.判断某个集合是否是其子集合

//        [set isSubsetOfSet:<#(NSSet *)#>]

        

        //3.集合的遍历

       NSEnumerator *rator = [setobjectEnumerator];

       id obj;

       while(obj=[ratornextObject])

        {

           NSLog(@"%@",obj);

            

            

        }

        

        //.集合的初始化,有多种方法

//        NSSet *set1 = [[NSSet alloc]initWithObjects:<#(id), ...#>, nil]

        

        //_______NSMutableSet_________

        

        NSMutableSet *set1 = [[NSMutableSetalloc]init];

        [set1addObject:@"one"];

        [set1 addObject:@"two"];//.如果添加元素相等,实际上只保留一个

        

       NSLog(@"%@",set1);

        //2.shan出元素

        [set1removeObject:@"one"];

          NSLog(@"%@",set1);

       NSSet *set2 = [[NSSetalloc]initWithObjects:@"dfd",@"dfsd",@"dfsfs",nil];

        [set1unionSet:set2];//set2中得集合全部添加到set1

        

       NSLog(@"%@",set1);

        

        [set1minusSet:set2];//.set2set1中删除

        

       NSLog(@"delete以后%@",set1);

        

        //__________NSIndexset___________指数集合(索引)

        NSIndexSet *indexset = [[NSIndexSetalloc]initWithIndexesInRange:NSMakeRange(2,2)];


        

        

      

        

       NSArray *array = [[NSArrayalloc]initWithObjects:@"qwer",@"fsdfs",@"fads",@"fsfdf",nil];

       NSArray *new = [arrayobjectsAtIndexes:indexset];

       NSLog(@"%@",new);


四、NSData

        NSString *str =@"hello world";

        

        //.将字符串对象转换为nsdata字节流

       NSData *data =

        [str dataUsingEncoding:NSUTF8StringEncoding];


       //.将其还原

        NSString *newStr = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];

       NSLog(@"%@",newStr);





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值