block的使用写法
来源:互联网 发布:mac鼠标右键怎么按 编辑:程序博客网 时间:2024/05/29 02:26
block的使用写法专题
1、block作为形参的写法,OC方法和C函数各2种,一共四种
OC方法第一种
第一步:先定义
typedef NSString *(^zcblk)(NSString*);
第二步:用定义的数据类型作为blk类型
-(NSString *)reverseWith1:(zcblk) blk;
OC方法第二种
直接把blk结构定义在参数中
-(NSString *)reverseWith:(NSString *(^)(NSString*)) blk;
C函数第一种
第一步:先定义
typedef NSString *(^zcblk)(NSString*);
第二步:用定义的数据类型作为blk类型
void a(zcblk blk)
C函数第二种
直接把blk定义在参数中
void a1(NSString *(^blk2)(NSString*))
其实以上几种反式本质是一致的,
第一是C和OC的形参命名格式不同,导致了两种分支
第二是typedef定义的简洁数据类型和直接在形参上写数据类型的不同,导致了另两种分支。
2、blk作为参数在函数内的调用,注意传参时机,什么时候调用什么时候传参
return blk(str1);
3、blk的typedef定义(起个名)
typedef NSString *(^zcblk)(NSString*);
4、blk变量的定义和赋值
第一种简便法(事先typedef):
zcblk blk1 = ^(NSString *str){
return [[NSString alloc] initWithFormat:@"in_blk_%@", str];
};
第二种直接使用blk结构定义
NSString* (^blk2) (NSString *str1) = ^(NSString *str1){
return [[NSString alloc] initWithFormat:@"iiiiii_%@", str1];
};
5、blk变量作为参数传递
NSString *str2 = [c reverseWith:blk1];
规律总结:
1、返回值不带括号
2、作为类型时,第二部分只有 (^)表示是block数据类型
3、作为形参时,可以使用typedef定义的别名,也可以使用具体结构定义
4、作为方法形参,直接使用(^)作为数据类型,然后接变量名;
作为函数形参,使用(^变量名)直接定义一个变量名
5、作为类型进行数据定义时,和函数形参方式一致。
可以使用typedef定义的别名,也可以使用具体结构定义即用(^变量名)直接定义一个变量名
6、什么时候使用,什么时候传参。
0 0
- block的使用写法
- 各个地方block的写法
- block写法
- Block写法
- block写法
- IOS 成功失败的Block写法
- Block的基本用法和写法1
- Block的使用 iphone
- block的简单使用
- oc block的使用
- block的使用
- Block的使用详解
- Block使用的注意
- Block的使用
- Block语法的使用
- SDWebImage的block使用
- Block语法的使用
- block的使用
- 监控与性能分析系列:3)systemtap
- Android中存取文件的两种方法
- 单页的EAS技巧-简单工作流脚本2
- 白话设计模式之--面向切面的编程
- JAVA学习之《JAVA核心技术》 学习测试代码
- block的使用写法
- php字符串去掉中文
- android studio1.3为项目设置library
- 3 - Longest Substring Without Repeating Characters
- 机房收费系统(二)项目开发计划
- HDU 5375 Gray code(DP)
- 【从头开始写操作系统系列】实现一个 GDT(3)
- 黑马程序员——java基础——集合框架
- Windows 10 主要版本安装地址记录