美文网首页
MY_Block的基本使用

MY_Block的基本使用

作者: _Weak | 来源:发表于2017-02-06 11:31 被阅读17次

传送门:https://github.com/VodkaMY/MY_iOS_Block-

使用第一步 inlineBlock

  • block的声明定义
<#returnType#>(^<#blockName#>)(<#parameterTypes#>) = ^(<#parameters#>) {
        <#statements#>
    };
    1. block的作用:帮你保存一份代码,等到恰当的时机调用
    1. block在ARC中使用strong
    1. 当做方法的参数使用
    1. 把block当做方法的返回值,目的就是为了代替方法
  • 事例一
void(^block)() = ^() {
        //保存什么样的代码
        NSLog(@"执行block");
    };
    
    block();
  • 事例二

#import <UIKit/UIKit.h>

@interface Person : NSObject
@property(nonatomic,strong)void(^operation)();

@end
- (void)viewDidLoad {
    [super viewDidLoad];

   void(^block)() = ^() {
        NSLog(@"执行了对象中的代码");
    };
    
    Person * p = [[Person alloc]init];
    p.operation = ^(){
        NSLog(@"执行了对象中的代码");
    };
    
    p.operation = block;
    
    self.person = p;
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    _person.operation();
}

-(void)block
{
    void(^block)() = ^() {
        //保存什么样的代码
        NSLog(@"执行block");
    };
    
    block();
}
  • 事例三
#import <UIKit/UIKit.h>

//blockName:别名
typedef void(^blockName)();

@interface Person : NSObject
//无返回值: void(^)()
@property(nonatomic,strong)void(^operation)();

//返回值 参数 方法名
-(void)eat1:(void(^)(void))block;

-(void)eat2:(blockName)block;

@end
#import "Person.h"

@implementation Person

-(void)eat1:(void (^)(void))block
{
    block();
}
@end
-(void)bolck3
{
    _person = [[Person alloc]init];
    [_person eat1:^{
        NSLog(@"执行了对象中的代码");
    }];
}
  • 事例四
-(void(^)(int))run;
-(void (^)(int))run
{
    return ^(int meter){
        NSLog(@"跑了%d米",meter);
    };
}
_person = [[Person alloc]init];
_person.run(2);

block回调事例

- (void)viewDidLoad {
    [super viewDidLoad];
    
    NSLog(@"我在玩手机");
    
    NSLog(@"手机没电了");
    
    [self chargeMyiPhone:^{
        NSLog(@"出去逛街");
    }];
    
    NSLog(@"回来洗澡");
}

-(void)chargeMyiPhone:(void(^)(void))finishBlock
{
    NSLog(@"正在充电");
    finishBlock();//block调用
}

相关文章

  • MY_Block的基本使用

    传送门:https://github.com/VodkaMY/MY_iOS_Block- 使用第一步 inline...

  • 基本的使用

    存cookie 取cookie 存session 取session

  • Flutter--Text/Container/Image

    Text基本使用 Container基本使用 Image基本使用

  • 基本使用

    1、 打开需要上传的文件夹执行: git init 格式化窗口 2、执行 git add . 上传文件 3、执行 ...

  • 基本使用

    href="javascript:;" 其中javascript: 是一个伪协议。它可以让我们通过一个链接来调用...

  • 基本使用

    数据库: 什么是数据库?简单来说就是存数据的。 都有什么是数据库? oracle(强大,跟金融政府打交道的,安全,...

  • 基本使用

    本文参考:https://morvanzhou.github.io/tutorials/machine-learn...

  • SQL语句基本使用

    SQL语句基本使用——增删改查 SQL语句基本使用——WHERE子句 SQL语句基本使用——AND和OR的使用 S...

  • 6-xpath和css select基本使用

    Xpath基本使用 css select基本使用

  • NSInvocation的基本使用

    前提: 在 iOS中可以直接调用某个对象的消息方式有两种:一种是performSelector:withObjec...

网友评论

      本文标题:MY_Block的基本使用

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