美文网首页
Block的基本使用

Block的基本使用

作者: Coder007 | 来源:发表于2016-05-14 19:49 被阅读80次

block基本使用

  • 在日常的开发中,我们经常会用到block,或者说是使用block来减少我们的代码量,比如说:控制器之间的传值,虽然使用代理等也可以实现,但是使用代理的时候代码量比较大,这个时候使用block就会很方便。
  • 最常用的就是在处理网络请求的时候,有返回值的时候需要执行的代码,自己封装的时候通常都是使用block(当然了,AFNetworking内部就是使用了大量的block)
  • block的作用:block的作用和函数和方法很像,就是用来保存一段代码,等到需要的时候再去调用

block的定义

  • 想知道Block如何定义??在Xcode中输入inlineBlock,将会出现的代码段就是Block的定义方法.
returnType(^blockName)(parameterTypes) = ^(parameters) {
    statements
};

// 注意:当有参数的时候,左右两边的写法是不一样的,左边只需要参数的类型,不需要参数名,但是右边的需要参数类型和参数

// 有返回值有参数的
返回值(^block名称)(参数列表) = ^(参数列表){

};
//没有返回值有参数
void(^block名称)(参数列表) =^(参数列表){

};
//没有返回值没有参数
void(^block名称)() = ^{

};

使用

  • 定义成属性
    • 定义成属性的时候需要使用copy,也不需要带“*
    • 在ARC中可以使用strong和copy,但是在MRC中只能使用copy
// 第一种方法
// 先定义一个别名
typedef void(^YWBlock)(NSString *name);
// 声明一个属性
@property(nonatomic, copy) YWBlock ywBlock;

// 第二种方法
// 直接写在属性中
@property(nonatomic, copy) void(^YWBlockType)(NSString *name);
  • 方法中的参数
// 推荐使用这种方法,block的定义写在方法声明中,这样看起来比较直观
// 在方法实现的时候能看到里面有什么参数,是什么类型的
- (void)testWithSuccess:(void(^)(NSString *str1, int tt))success;

// 这种方式声明的也没错,但是阅读性不好
// 在方法实现中也不好用
typedef void(^failedBlock)(NSString *str1, int tt);
- (void)testWithFailed:(failedBlock)failed;

相关文章

  • block使用及其底层原理

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

  • Block基本使用

  • block 基本使用

    一、函数指针的作用 二、block的定义与调用方式 三、typedef block 四、block 修饰符 五、b...

  • Block的基本使用

    在说Block的基本使用之前,我们先说Block在OC中的作用是什么?** 保存代码的作用。通常用于回调。** 1...

  • block的基本使用

    Block 释义:匿名的函数、代码块(把你想要执行的代码封装在这个代码块里,等到需要的时候再去调用),是苹果在 i...

  • Block的基本使用

    今天和大家一起来学习一下Block的基本使用,有疏忽的地方,还望各位不吝赐教。 一、Block表达式和基本使用 1...

  • Block的基本使用

    1.Block代码块的基本使用 Block的作用Block主要用来保存一段代码Block可以封装一段代码,这段代码...

  • block的基本使用

    一 Block基本常识 1.声明block声明没有参数没有返回值blockvoid(^block1)(); ...

  • block的基本使用

    什么是block block是ios中一种特殊的数据类型 block的作用用来保存一段代码,可以在恰当的时候调用功...

  • Block的基本使用

    block基本使用 在日常的开发中,我们经常会用到block,或者说是使用block来减少我们的代码量,比如说:控...

网友评论

      本文标题:Block的基本使用

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