其实Block回调非常简单,起初你可能会觉得它很神秘,不!
这几段代码,就足以诠释它的功能,胜过一切详解剖析,get起来吧!
如何理解Block:
CodeA在头文件中定义了一个Block,在实现文件中合适的位置调用Block,但这个Block在调用时具体做些什么呢,有CodeB来决定,所以这时只需要在CodeB中定义Bloak的执行代码,然后调用[codeA setBloak:bloak],明白了吧,不明白看下面代码示例,这是最简单明了的示例了
意图:代码 A 传值给代码B (A — > B)
A.h
|
#import<Foundation/Foundation.h>
#import <UIKit/UIKit.h> typedefvoid
(^BlockForXNTopBar_1)(int currentPager); //1.创建Block类型
@interface XNScrollTopbar :UIView
{
BlockForXNTopBar_1 block_1; //2.定义Block变量
}
- (void)setBlock_1:(BlockForXNTopBar_1)block1;
//3.定义setBlock方法 外界入口
@end
|
A.m
|
- (IBAction)Action_Btn_1:(UIButton
*)sender{
int index = (int)sender.tag -500;
block_1(index); //5.传值
}
- (void)setBlock_1:(BlockForXNTopBar_1)block1 { //4.外界入口
if(block_1
!= block1){
block_1 = block1; } }
|
B.m
|
A *a = [[A alloc] init];
[a setBlock_1:^(int
currentPager) { //6.接受到值
NSLog(@"blockresult:
%d", currentPager);
}];
|
控制台输出:
本文通过一段代码示例,详细解释了Block回调的概念及其使用方法,包括如何在头文件中定义Block类型,如何在实现文件中调用并传递Block,以及在不同代码模块间传递Block的过程。
1338

被折叠的 条评论
为什么被折叠?



