block的使用

作者: 光明程辉 | 来源:发表于2016-03-02 22:50 被阅读75次

总结起来就一句:

谁传值,谁创建block;

谁接收值谁实现block;

block先实现,后调用!

bolck 的使用?

  • 声明一个block
    @property (nonatomic, copy) void (testBlock^)(); // 使用 copy

    // 1.如果没有对block进行copy操作,block就存储于栈空间(指针)
    // 2.如果对block进行copy操作,block就存储于堆空间(app管理)

    // 3.如果block存储于栈空间,不会对block内部所用到的对象产生强引用
    // 4.如果block存储于堆空间,就会对block内部所用到的对象产生强引用
    Person *p = [[Person alloc]init];
    __weak typeof(p) weakP = p;
    p.testBlock = ^ {
    [weakP run]; // 强引用
    };

    2> block
    (1)、block的内存管理
    (2)、防止循环(retain)ARC :__weak , 非ARC __block

  • 如何修改 block 里面的值?
    __block XXXX XXX

创建block时的2种方式:

  • 第一种:直接敲type就会有提示,然后回车。

typedef 返回类型 (^名字) (参数);

block快速创建.png
  • 然后:声明:(不过这样使用的,block似乎按回车是没有展开!)感觉使用起来不太爽!
    @property(nonatomic,copy) categoryIDchange categoryIDchangeBlock;

  • 第二种是:(可以说和第一种方式差不多,但是这种使用时,按回车时,就可以像CGD那样了!非常方便!!!)
    // 1、代码块属性【具体要操作的代码】 ---> 哪里是要做的事情就哪里写
    @property (nonatomic,copy) void (^categoryIDchange)(NSString *categoryId);

  • 调用:
    // 不要使用点语法,使用set方法,否则回车不会有效果
    [leftVC setCategoryIDchange:^(NSString *) {
    <#code#>
    }];

相关文章

  • ios block使用

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

  • 白话block

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

  • iOS Block使用注意

    block本质是两个结构体,使用block使代码简单易读。使用Block注意: 1、block内部使用外部指针,会...

  • iOS Block -浅析 文章

    Block 的使用有两种:1.独立Block 。2.内联Block 。 《一》独立Block 使用方式 一、定义一...

  • OC中的block回顾

    1.block声明 2.block的typedef 2.1 typedef的使用 2.2 声明block类型的使用...

  • Block其实很简单

    Block的几种情况 block的使用 1.使用block实现反向传值 2.利用block写响应式编程的技巧

  • Objective-C 类之间通信

    block的使用 block的定义和使用 变量的作用域及代码的执行顺序 block外部变量的值在block内部具有...

  • Blocks

    使用block修改器 __block

  • iOS开发--当Block、代理、通知遇到女朋友

    什么是Block? 为什么使用Block? 怎么使用Block? 本文将从这三个问题入手来逐渐了解Block。 本...

  • block使用及其底层原理

    一 block基本使用 二 block底层结构 三 block变量捕获 四 block的类型 五 block对象类...

网友评论

本文标题:block的使用

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