博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
block 数组排序
阅读量:7041 次
发布时间:2019-06-28

本文共 2312 字,大约阅读时间需要 7 分钟。

 

 

#import <Foundation/Foundation.h>

 

    //定义⼀一个block,返回值为BOOL,有两个NSString参数。实现:判

    //断字符串是否相等。

    

    BOOL (^compareString)(NSString *, NSString *) = ^(NSString *str1, NSString *str2){

        if ([str1 isEqualToString:str2]) {

            return YES;

        }else{

            return NO;

        }

    };

    

    if (compareString(@"sss",@"sss")) {

        NSLog(@"相同");

    }

    

 

    //定义⼀一个block,返回值为NSInteger,有两个参数,⼀一个是 NSArray,⼀一个是NSString。实现:判断数组时候包含此字符串,如 果包含,返回字符串的下标,如果不包括,返回-1。

    NSArray *arr = @[@"aa",@"ss",@"ww"];

    NSString *str = @"ss";

    

    int (^find)(NSArray *, NSString *) = ^(NSArray *arr, NSString *str ){

        for (int i = 0; i < arr.count; i++) {

            if ([arr[i] isEqualToString:str]) {

                return i;

            }

        }

        return -1;

    };

    

    int f = find(arr,str);

    NSLog(@"%d",f);

    

    

    

    

    //创建⼀一个数组,初始化为@“123",@"21",@"33",@"69", @“108”,

    //@“256”。使⽤用Block语法,进⾏行数组的排序。并输出内容。 排序结果:108 123 21 256 33 69

    //提⽰示:sortedArrayWithOptions:usingComparator:

    //不可变数组

    NSArray *arr1 = @[@"23", @"1", @"3", @"2", @"108"];

    

    NSArray *arr2 = [arr1  sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){

        if ([obj1 intValue] > [obj2 intValue]) {

            return NSOrderedDescending;

        }

        return NSOrderedSame;

      }

     ];

    

     NSLog(@"sortArray1:%@", arr2);

    

    

    

    

    

    

    NSArray *arr11 = @[@"23", @"1", @"3", @"2", @"108"];

    NSArray *a1 = [arr11  sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){

        if ([obj1 intValue] > [obj2 intValue]) {

            return NSOrderedDescending;

        }

        return NSOrderedSame;

    }];

    NSLog(@"sortArray1:%@", a1);

 

    

    

    

 

    //5, 给可变数组排序的block

    //5,1

    NSComparator sortBlock = ^(id string1, id string2)

    {

        return [string1 compare:string2];

    };

    NSMutableArray *stringArray = [NSMutableArray arrayWithObjects:@"g", @"c", @"b", @"a",nil];

    NSArray *a = [stringArray sortedArrayUsingComparator:sortBlock];

    NSLog(@"Array:%@", a);

    

    

    //分开写的block 不可变数组

    NSComparator sortBlock1 = ^(id string1, id string2)

    {

        return [string1 compare:string2];

    };

    NSArray *stringArray2 = [NSArray arrayWithObjects:@"g", @"c", @"b", @"a",nil];

    NSArray *a2 = [stringArray2 sortedArrayUsingComparator:sortBlock1];

    NSLog(@"分开写的block 可变数组:%@", a2);

    

 

    

    

    

 //4. 使用Block根据Person的age进行排序,并输出

    [array sortUsingComparator:^NSComparisonResult(Person *p1 ,Person *p2){

        if([p1 age] > [p2 age])

            return NSOrderedDescending;

        else

            return NSOrderedSame;

    }];

    

    

    

/*

    //根据年龄 升序排列

    [array sortUsingComparator:^NSComparisonResult(id p1, id p2){

        if ([p1 age] > [p2 age]) {  //  <:降序.     >:升序

            return NSOrderedDescending;

        }

        return NSOrderedSame;

    }];

     */

    

 

 

 

转载地址:http://fyhal.baihongyu.com/

你可能感兴趣的文章
ADO.NET DataReader对象简介
查看>>
eBook 功能模块一之颜色选择器【ColorPickerPreference】自定义Preference 对话框
查看>>
SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据...
查看>>
全面剖析XMLHttpRequest对象
查看>>
一步一步SharePoint 2007之三十二:实现文档Event Handler(4)——尝试Event Handler
查看>>
管理Mongodb 集群所用到的系统管理及监控
查看>>
python中用try来处理程序异常的集中常用方法
查看>>
[CTO札记]惊讶于警察尚未用LBS(手机定位服务)来追踪疑犯
查看>>
HP MSL2024带库无法弹出Media Slot,无法更换磁盘尝试
查看>>
打开磁盘管理器,提示:RPC服务器不可用
查看>>
MIX 2008与ASP.NET MVC框架的Road-Map
查看>>
git忽略文件【转】
查看>>
sklearn的train_test_split,果然很好用啊!
查看>>
什么是域(domain)
查看>>
在VisualStudio中应该使用什么字体
查看>>
一个C#的加锁解锁示例
查看>>
Android应用在不同版本间兼容性处理
查看>>
Win8:WinJS.UI.AppBar 工具栏
查看>>
Java中的强引用、软引用、弱引用和虚引用
查看>>
ios: NSConditionLock
查看>>