Objective-c - block作为方法的参数:字符串数组的排序
2017-01-12 18:18
459 查看
/*
Objective-c - block作为方法的参数:字符串数组的排序
两个字符串的比较由方法的调用者传入.
*/
#import <Foundation/Foundation.h>
#import "YYArray.h"
int main(int argc,
const char * argv[]) {
//定义字符串数组并初始化
char *names[] = {
"xuezhangjun",
"zuoxiaoying",
"liyajie",
"guojianjun",
"liuxuemei"
};
//创建array对象
YYArray *array = [YYArray new];
//计算字符串数组的长度
int length = sizeof names /
sizeof names[0];
//1,调用排序的方法,传入的block要求:按字符串数组内元素的长度排序
[array compositorWithArray:names
andLength:length andBlock:^BOOL(char *name1,
char *name2){
size_t len1 =
strlen(name1);
size_t len2 =
strlen(name2);
if((int)len1 - (int)len2 >
0)
{
return
YES;
}
return NO;
}];
//输出
for(int i =
0; i < length; i++)
{
NSLog(@"%s", names[i]);
}
//分隔线
NSLog(@"----分隔线----");
NewType b1 = ^BOOL(char *name1,
char *name2){
int res =
strcmp(name1, name2);
if(res > 0)
{
return
YES;
}
return NO;
};
//2,调用方法,传入排序要求block类型的变量b1,按姓名首字母的ASCII码排序
[array compositorWithArray:names
andLength:length andBlock:b1];
//输出
for(int i =
0; i < length; i++)
{
NSLog(@"%s", names[i]);
}
return 0;
}
Objective-c - block作为方法的参数:字符串数组的排序
两个字符串的比较由方法的调用者传入.
*/
#import <Foundation/Foundation.h>
#import "YYArray.h"
int main(int argc,
const char * argv[]) {
//定义字符串数组并初始化
char *names[] = {
"xuezhangjun",
"zuoxiaoying",
"liyajie",
"guojianjun",
"liuxuemei"
};
//创建array对象
YYArray *array = [YYArray new];
//计算字符串数组的长度
int length = sizeof names /
sizeof names[0];
//1,调用排序的方法,传入的block要求:按字符串数组内元素的长度排序
[array compositorWithArray:names
andLength:length andBlock:^BOOL(char *name1,
char *name2){
size_t len1 =
strlen(name1);
size_t len2 =
strlen(name2);
if((int)len1 - (int)len2 >
0)
{
return
YES;
}
return NO;
}];
//输出
for(int i =
0; i < length; i++)
{
NSLog(@"%s", names[i]);
}
//分隔线
NSLog(@"----分隔线----");
NewType b1 = ^BOOL(char *name1,
char *name2){
int res =
strcmp(name1, name2);
if(res > 0)
{
return
YES;
}
return NO;
};
//2,调用方法,传入排序要求block类型的变量b1,按姓名首字母的ASCII码排序
[array compositorWithArray:names
andLength:length andBlock:b1];
//输出
for(int i =
0; i < length; i++)
{
NSLog(@"%s", names[i]);
}
return 0;
}
相关文章推荐
- Objective-c - block作为方法的参数
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- c++中关于数组作为函数参数并传递数组元素个数的几种有效方法的讨论
- javaScript array(数组)使用字符串作为数组下标的方法
- ObjectC中弥补switch参数不能为字符串的方法(主要通过block特性)
- c++中关于数组作为函数参数并传递数组元素个数的几种有效方法的讨论
- javaScript array(数组)使用字符串作为数组下标的方法
- 关于网上搜查得到的3DC3的基于字符串后缀数组的排序方法的怀疑
- java基础知识回顾之---java String final类普通方法的应用之字符串数组排序
- 字符串数组排序(qsort参数 比较函数)
- 利用数组名作为函数参数传递排序和用指针进行排序
- QT 自定义信号与信号槽方法及解决自定义数据类型或数组作为函数参数的问题
- 数组作为方法参数
- 数组作为函数参数并传递数组元素个数的几种有效方法
- 给数据库传递组合字符串参数,类似数组的解决方法
- 对字符串数组进行排序,在冒泡法排序中使用compareTo()方法确定排序的顺序。
- js调用c/c++dll,用字符串/数组作为参数
- 排序一个字符串数组,使用数组的的方法排序 第二种内存模型;
- ObjectC中弥补switch参数不能为字符串的方法(主要通过block特性)