美文网首页
Block相关

Block相关

作者: iTerryWang | 来源:发表于2017-02-10 16:22 被阅读45次

bock常用写法:

1、无返回值 & 无参数

//定义blcok变量 无返回值
typedef void(^BlockA)(void);

//赋值
BlockA blockA = ^{
    NSLog(@"this is blockA");
};

//调用
blockA();

2、有返回值 & 无参数

//定义blcok变量 返回值为int类型,无参数
typedef int(^BlockB)(void);

//赋值
BlockB blockB = ^int {
    int count = 2;
    NSLog(@"this is blockB [%d]", count);
    return count;
};

//调用
blockB();

3、有返回值 & 有参数

//定义blcok变量 返回值为int类型, 参数为int类型
typedef int(^BlockC)(int);

//赋值
BlockC blockC = ^int (int count){
    NSLog(@"this is blockC [%d]", count);
    return count;
};

//调用
blockC(4);

4、

typedef void(^BlockD)(void);
typedef void(^BlockE)(int, NSString*);

- (void)testBlock:(BlockD)blockD blockE:(BlockE)blockE {
    blockD();
    blockE(2, @"abc");
}

[self testBlock:^{
    NSLog(@"---blockD-----");
} blockE:^(int count, NSString *string) {
    NSLog(@"blockE count is [%d],string is [%@]", count, string);
}];

block注意事项:
1、
变量访问,使用__block修饰符,可以对变量读写,否则只读。

2、
注意循环引用,使用__weak修饰符:

__weak __typeof(self)weakSelf = self;

blockF = ^{
    __strong __typeof(weakSelf)strongSelf = weakSelf;
    NSLog(@"self is [%@]", strongSelf);
};

blockF();

相关文章

  • block相关

    是写在方法里的,在方法里定义个block,有返回值的,以;结尾,block只有被调用的时候才能执行 {} 里的代码...

  • Block相关

    bock常用写法: 1、无返回值 & 无参数 2、有返回值 & 无参数 3、有返回值 & 有参数 4、 block...

  • Block相关

    Block基本使用 1.1、block声明:返回值(^block变量名)(参数)void(^block)(); 1...

  • Block相关

    https://www.jianshu.com/p/4e79e9a0dd82

  • Block相关

  • Block相关

    Block 一:结构相关Block是一个包含了上下文变量的对象,该对象包含了_block_impl结构体,上下文变...

  • Block相关

    类型 1.NSGloabalBlock 全局block,存储在全局区 该block无参数,无返回值,内部也没有引用...

  • Block相关

    整理一下自己学到的知识,方便以后查看 使用block时什么情况会发生引用循环,如何解决? 一个对象中强引用了blo...

  • Block 初见

    Block 初见 介绍 iOS block 的相关知识 目录 Block 背景知识 Block 使用方式 Bloc...

  • block用法大全

    block语句块 如何解决block循环引用 高逼格理解block循环引用 block相关

网友评论

      本文标题:Block相关

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