问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ios compare怎么对中文排序

发布网友 发布时间:2023-07-09 12:13

我来回答

1个回答

热心网友 时间:2023-08-05 14:17

Block:语法块,本质上是匿名函数(没有名称的函数)
标准C里面没有Block,C语言的后期扩展版本,加入了匿名函数
在C++、JS、Swift等语言有类似语法,叫做闭包
Block语法和C语言里的函数指针很相似,下面我们先来回顾下C语言中的函数和函数指针
C语言中函数是指:实现某一功能的代码段
完整的函数包括两部分:函数声明、函数定义
函数声明,即函数原型。例如: int sum (int x,int y) ;具有两个整形参数,一个整形返回值的函数
函数定义,即函数实现。例如: int sum(int x,int y){
return x + y;
}
函数指针(变量):存放函数地址(函数名)的指针变量
int(*p)(int x,int )= sum;
函数指针类型: int(*)(int x,int y) 即:指向两个整形参数,一个整形返回值函数的指针
函数指针变量: p
函数指针的值: sum
Block 匿名函数:没有名称的函数
例如: int (int x,int y)
因为Block是匿名函数,block变量存放的函数的实现,通过block变量能直接调用函数
Block类型: int (^)(int)
Block变量: myBlock
Block值: ^int (int num) {return 7*num;}
即:^返回值类型(参数列表){函数体}其中返回值类型可以省略
例如:写一个 返回值为整形 参数为OC字符串(仅一个参数)的block,实现将字符串转换为整形的功能
int (^myBlock)(NSString *) = ^(NSString *string) {
return [string intValue];
};
NSLog(@"%d",myBlock(@"123"));
block的数据类型代表了匿名函数的格式(返回值类型,形参的类型)
block变量的定义与函数指针变量的定义类似,唯一区别于函数指针变量的是变量名前通过脱字符(^)修饰
首先应该用^修饰,剩余的部分与C语言函数定义一致,最大的不同就是没有函数名(同时返回值类型也可以省略)
block变量在定义时具有变量定义的基本特征,赋值号右侧的匿名函数可以当做一个整体被赋值,类似于 int a = 5;
block变量所赋的值是匿名函数。又兼具函数的特征,并且是唯一可以定义在某个函数实现内部(C语言中认为函数是不能嵌套定义的,block是个特例)
Block进行typedef
typedef int (^BlockType)(int x,int y)
原类型: int(^)(int x,int y)
新类型: BlockType
类比函数指针的类型定义,格式与函数指针一致,类型定义一定程度上简化了block的使用。
typedef int (^SumType)(int,int);
SumType sumBlock = ^(int x,int y) {
return x + y;
};
int result = sumBlock(5,4);
NSLog(@"%d",result);
__block类型标识可以运行局部变量在其后续定义的block内部正常访问,
__block int num = 0;
void (^testBlock)() = ^() {
for (int i = 0; i < 10; i++) {
count++;
num++;
NSLog(@"%d",count);
}
};
block调用
testBlock();
数组使用Block排序

数组使用Block对两个字符串进行比较
NSComparisonResult (^compareBlock)(NSString *,NSString *) = ^(NSString *str1,NSString *str2) {
return [str2 compare:str1];
//如果是升序返回-1,如果是降序返回1,如果相等返回0
};
NSLog(@"%ld",compareBlock(@"11",@"12"));

NSArray *array = @[@1,@2,@13,@12,@23];
NSArray *resultArray1 = [array sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",resultArray1);
数组使用Block排序 降序排列
NSComparator sortBlock = ^(id obj1,id obj2) {
return [obj2 compare:obj1];
};
NSArray *resultArray2 = [array sortedArrayUsingComparator:sortBlock];
NSLog(@"%@",resultArray2);
升序序排列
NSArray *resultArray3 = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2];
}];
NSLog(@"%@",resultArray3);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 bcompare怎么改为中文版本 compare中怎样吧乱码转化中文 爸爸马上拿到加拿大绿卡,关于儿子移民! 如果父母如果持有加拿大绿卡,我到了那边是不是可以直接申请入籍 老公是加拿大公民孩子生在香港能直接入加拿大国籍吗? 孩子的父亲是加拿大永久居民 我们没有婚姻关系了孩子可以移民加拿大吗... 不知道迈阿密那边坏境怎么样,去哪上学安全吗 迈阿密飓风 向北撤离到哪个城市最安全 父亲是加拿大国籍,孩子出生在中国,申请加拿大国籍都需要什么手续,需要... ...是加拿大籍人,孩子在中国出生,能否申请入籍加拿大,需要多长时间?_百... 老公为加拿大公民 我是为中国公民 如果怀了孩子,在中国出生 能申请加 ... 昆明地铁从呈贡市政行政中心站到潘家湾是几号线? 贫血的人应多吃一些什么才会对身体有好处? 国二排放的汽车可以改成国三排放,是真的吗? 国二的车现在能升国三吗 国二切换国三的时间 想问国二化油器换国三怎么装 国二叉车怎么改国三 五羊本田110踏板车国二化油器怎样改国三? 04本田飞度国二网上怎么申请升级国三吗 成都百都科技运营专员怎么样 成都百都科技有限公司的运营专员怎么样 招商策划的人员素质 中国邮政集团黑龙江省分公司面试考什么 中国邮政集团河北省分公司面试共几轮 中国邮政集团有限公司进面比例 邮政面试通知是面试前一天发短信吗? 中国邮政泉州分公司面试在哪里面试 第8号当铺 片尾曲 第八号当铺 的插曲 哒啦 哒啦 哒 哒啦 哒啦 哒,那首曲子叫什么名字... 没有喝完的王老吉可以浇花吗? 王老吉能浇花吗 第八号当铺中的歌 王老吉不想吃了又怕浪费有什么办法? 第八号当铺中的韩诺很爱听的那首英文歌是什么啊 过期的王老吉能不能浇花 加多宝能浇花吗 洗车机嗡嗡响不启动是怎么回事视频洗车机嗡嗡响不转动是哪里的问题? 苹果5s手机每月第二次还原窝蜂统计数据怎样还原 为什么qq会有黑客主动加你