美文网首页
Block的用法

Block的用法

作者: 不是谁的李逍遥 | 来源:发表于2020-09-09 11:49 被阅读0次

1.block作为属性

写法1:typedef声明block名称

typedef id(^Block_Name)(id arg1, id arg2);
@property (nonatomic, copy) Block_Name block;

写法2:直接书写

@property (nonatomic, copy) id(^Block_Name)(id arg1, id arg2);

2.block作为参数

写法:

- (void)method:(id(^)(id arg1,id arg2))argBlock;

3.block作为返回值

- (void (^)())walk;
//实现
- (void(^)())walk{
    return ^(){
        NSLog(@"走起");
    };
}

block作为返回值可以实现简单的链式编程

- (Person *(^)(int))eat;
- (Person *(^)(int))sleep;

//实现
- (Person *(^)(int))eat{
    return ^(int dun){
        NSLog(@"吃了%d顿",dun);
        return self;
    };
}

- (Person *(^)(int))sleep{
    return ^(int minute){
        NSLog(@"又睡了%d分钟",minute);
        return self;
    };
}

通过上面的写法,person可以无限的调用eat以及sleep方法,因为这2个方法返回的都是person类本身,还可以传入block的参数,我们还可以通过这个用法来修改对应类的变量,使之写起来有种链式的感觉,调用后:

Person *person = [Person new];
person.eat(10).sleep(20).eat(30).sleep(100);

相关文章

  • Swift之Block

    block用法

  • 关于Block

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

  • 白话block

    本文内容 什么是block? block的用途 block的用法 block在使用中遇到的问题 如何使用xcode...

  • ios block用法与分析

    一: block的基础用法 block声明: int(^blockDemon)(inta,intb) ,其中int...

  • Kotlin的run,let,apply,also,with的用

    run函数 用法一 定义:public inline fun(block:()->R):R=block() 功能:...

  • iOS开发-block的使用(上)

    引言:本文旨在介绍block的基本用法,怎么定义一个block,怎样使用block. block的声明与定义 首先...

  • block用法小结

    基本用法 作用block用来保存一段代码 block的标志: ^ block与函数block与函数很像1.可以保存...

  • Block基础看它就够了

    Block基本用法 "Block语法" 1.作为方法时 - (void)testGlobalBlock:(NSSt...

  • Block的学习

    基础部分 一 重要概念: 1 闭包 2 block 二 block的用法 1 block的声明,定义,调用: 声明...

  • Block的用法

    块(block)是添加到C、Objective-C和C++的语言级功能。它允许你创建不同的代码段,可以像传值一样传...

网友评论

      本文标题:Block的用法

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