美文网首页
iOS实现简单的block

iOS实现简单的block

作者: WMSmile | 来源:发表于2016-08-25 13:52 被阅读21次

OC中的block主要用来保存一段代码,在需要的时候执行。
下面是一个小的例子:

#import "ViewController.h"

@interface ViewController ()

/** myblock(定义一个block) */
@property(nonatomic,copy) void(^myblock)();
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
//    如果忘记block怎么写,可以使用“inlineblock”。oc会自动提示
//    <#returnType#>(^<#blockName#>)(<#parameterTypes#>) = ^(<#parameters#>) {
//        <#statements#>
//    };
    
    __weak  UIViewController *self1 = self;
//    __block UIViewController *self1 = self;
    /** block代码块 */
    self.myblock = ^{
        NSLog(@"我被执行了");
        self1.view.backgroundColor = [UIColor colorWithRed:arc4random()%10/10.0f green:arc4random()%10/10.0f blue:arc4random()%10/10.0f alpha:1];
    };
    
}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    NSLog(@"%s",__func__);
    //执行block
    self.myblock();
}

@end

ps:

  1. 如果忘记block怎么写,可以使用“inlineblock”。oc会自动提示哦!
  2. 属性要使用copy属性
  3. 防止循环引用,如果在block块代码中使用,要使用弱类型,用__weak和__block修饰

相关文章

  • iOS-2 Block

    block块 系列文章: iOS Block浅浅析 - 简书 iOS Block实现原理 iOS Block __...

  • iOS Block存储域及循环引用

    系列文章:iOS Block概念、语法及基本使用iOS Block实现原理iOS Block __block说明符...

  • iOS实现简单的block

    OC中的block主要用来保存一段代码,在需要的时候执行。下面是一个小的例子: ps: 如果忘记block怎么写,...

  • iOS Block __block说明符

    系列文章:iOS Block概念、语法及基本使用iOS Block实现原理iOS Block存储域及循环引用 上一...

  • iOS Block概念、语法及基本使用

    系列文章:iOS Block实现原理iOS Block __block说明符 最近又翻了一遍《Objective-...

  • 2021-06-07

    IOS block 简单的可以认为是NSObject 对象(superclass:NSBlock) block就是...

  • ios block使用

    iOS Block的使用一 .最简单的block使用******使用block的三个步骤:1.定义block变量 ...

  • Block - __block关键字的底层实现原理

    参考文档 iOS中__block 关键字的底层实现原理 你真的理解__block修饰符的原理么? iOS Bloc...

  • iOS 我这样定义block

    简单来讲,block就是一种代码块;在iOS4引入的对C语言的扩展, 用来实现匿名函数的特性,Block是一种特殊...

  • block 实用小例子

    本篇是简单介绍iOS 开发中block的使用(附demo): /* 声明一个block (返回类型)(^block...

网友评论

      本文标题:iOS实现简单的block

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