oc之数组排序 id nsobject instancetype的区别

oc排序与c语言排序不同,不需要写实现的方法,只需要调用已经写好的方法

// 数组内元素排序--(选择器)正序输出
        NSArray *array1=[NSArray arrayWithObjects:@"zcc",@"qwe",@"ada",@"cbv",nil];
        NSArray *sortArray2=[array1 sortedArrayUsingSelector:@selector(compare:)];
        for(id str in sortArray2){
            NSLog(@"%@",str);
        }
       
// 数组内元素排序--(选择器)倒序输出
        NSArray *array1=[NSArray arrayWithObjects:@"zcc",@"qwe",@"ada",@"cbv",nil];
        NSArray *sortArray3=[array1 sortedArrayUsingSelector:@selector(class)];//倒序输出
        for(id str3 in sortArray3){
            NSLog(@"%@",str3);
        }
1 //数组排序-- block (默认是升序,降序就是将obj1和obj2调换位置)
2         NSComparator sort=^(id obj1,id obj2){  //使用id可以传任意对象
3             return [obj1 compare:obj2];       //obj1  obj2进行比较  返回枚举类型值
4         };
5         NSArray *sortArray1=[array1 sortedArrayUsingComparator:sort]; //调用sort函数,sort函数必须自己写
6         for(id str1 in sortArray1){
7             NSLog(@"%@",str1);
8         }

id nsobject instancetype的区别

         

         Dog *jingba=[[Dog alloc]init];

         也可以写成

          NSObject *jingba=[[Dog alloc]init];

         父类可以指向子类对象,但是使用方法时必须强转成子类方法

          [(Dog *)haShiQi bark];

         

         id nsobject 都是指向任意的对象类型

         id 当不确定数组类型时,可以选择用id

         nsobject 使用时必须强转,id  不用

         

         instancetype 可以反回和方法所在类相同类型的对象(返回值类型多,但是不能传参)

         id 只能返回未知类型的对象   (大多参数使用)

转载于:https://www.cnblogs.com/jiangyicheng/p/5110024.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值