美文网首页
NSNotificationCenter传递Block作为参数

NSNotificationCenter传递Block作为参数

作者: 懂哲学的老鼠 | 来源:发表于2021-04-02 14:51 被阅读0次
- (void)touchesBegan:(NSSet<UITouch *> *)touches
           withEvent:(UIEvent *)event {
    void(^aBlock)(BOOL isTest);
    aBlock = ^(BOOL isTest) {
        NSLog(@"isTest == %i",isTest);
    };
    [[NSNotificationCenter defaultCenter] postNotificationName:@"nTest"
                                                        object:nil
                                                      userInfo:@{@"block":aBlock}];
}
- (void)viewDidLoad {
    [super viewDidLoad];    
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(test:)
                                                 name:@"nTest" object:nil];
}

- (void)test:(NSNotification *)noti {
    void (^aBlock)(BOOL isTest) = noti.userInfo[@"block"];
    aBlock(YES);
}
打印结果
demo[68899:1075016] isTest == 1

我对传递Block作为参数,是这样理解的:
假设:C 需要根据 A 的某些参数值,做一些事情;但是 AC 并没有直接关系,故而,我们可以使用这种方式,做到特定值的传递。

相关文章

  • NSNotificationCenter传递Block作为参数

    我对传递Block作为参数,是这样理解的:假设:C 需要根据 A 的某些参数值,做一些事情;但是 A 与 C 并没...

  • block作为参数传递

    众所周知,block是iOS开发中一个经常使用的模块, block 可以用来包含一段代码块,可以传值, 用法灵活,...

  • block使用方法

    block基本使用 没有参数,=左边的()里面要写上void。 作为方法的参数传递使用 怎么区分参数是block?...

  • 【Objective-c】 Block 基本使用及循环引用分析

    1.0 基本使用 2.0 block的闭包 3.0 block作为参数传递 4.0 typedef 与 block...

  • 关于block(2)

    标签: iOS 技术 接上一篇,我们继续探究block。 block作为参数传递 这在实战中定义方法传递值时经常用...

  • Blcok代码总结

    1.声明一个Block 并调用 2.在函数中把Block作为参数传递或进行回调

  • block在开发中的使用场景

    block作为函数的参数 怎么判断参数是不是block 看参数有没有,如果有,就是block参数 作为参数的blo...

  • block作为参数

    应用场景:网络请求或者在一些异步代码中有先后顺序的情况下。例如:1、 网络请求成功之后,再利用请求的结果数据去做其...

  • Block使用注意事项

    block(块)的本质是什么? 在本质上是一个指向结构体的指针,能将函数作为变量、参数来传递。 block通俗点儿...

  • [iOS][OC]理解Block

    本文整理下Block含参和含返回值和函数作为参数传递的情况,写下笔记方便复查

网友评论

      本文标题:NSNotificationCenter传递Block作为参数

      本文链接:https://www.haomeiwen.com/subject/xxfqkltx.html