• 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 只能返回未知类型的对象   (大多参数使用)

  • 相关阅读:
    执行游戏时出现0xc000007b错误的解决方法
    html中#include file的使用方法
    使用ServletFileUpload实现上传
    java环境变量配置
    微软之左旋转字符串
    Ubuntu下很给力的下载工具
    hibernate官方新手教程 (转载)
    mssql数据库游标批量改动符合条件的记录
    PageRank算法
    Myeclipse7.5 下载 安装 注冊 注冊码 100%成功
  • 原文地址:https://www.cnblogs.com/jiangyicheng/p/5110024.html
Copyright © 2020-2023  润新知