创建回调函数

Posted yutingliuyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建回调函数相关的知识,希望对你有一定的参考价值。

1.新建一个空的project,在project中随便创建一个类,比方:
.h文件
#import <UIKit/UIKit.h>

typedef void(^resultBlock)(void);

@interface MyView : UIView

//回调函数的声明
@property (assign, nonatomic)resultBlock block;

//回调函数的实如今调用端实现
- (void)doSomething:(NSString *)string withTheBlock:(resultBlock)block;

@end

.m文件
#import "MyView.h"

@implementation MyView

- (void)doSomething:(NSString *)string withTheBlock:(resultBlock)block
{
    self.block = block;
    NSLog(@"string:%@",string);
    
    if (self.block) {
        self.block();
    }
}
@end

2.在ViewController中实现
- (void)viewDidLoad {
    [super viewDidLoad];

    MyView *view = [[MyView alloc]init];
    
    [view doSomething:@"Hello" withTheBlock:^{
        
        NSLog(@"这里是回调");
    }];

}

这样就实现了调用MyView对象的一个方法结束后。调用ViewController类中的方法。

以上是关于创建回调函数的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题之手写promise

无法在回调函数中访问属性React

Facebook状态回调不适用于片段

使用后续突变和缺失片段中继 commitUpdate 回调

满足条件时是不是可以在 GLSL 着色器中回调 C/C++ 函数/代码? [关闭]

ios block和delegate的区别