美文网首页
Block的使用

Block的使用

作者: _叫我小贱 | 来源:发表于2016-06-06 21:02 被阅读22次

1.什么是Block?

  • Block是iOS中的数据类型(定义变量 、形参、返回值)。
  • Block是苹果官方推荐使用的数据类型。
    • 动画。
    • 多线程。
    • 集合遍历。
    • 网络请求的回调。
  • Block的作用
    • 用来保存某一段代码,可以在恰当的时间再取出来调用。
    • 功能类似于函数和方法。
      2.Block的格式
  • Block的定义格式
返回值类型(^block变量名)(形参列表) = ^(形参列表){

};
  • 指向函数的指针
void printRose()
{
  printf(" {@}\n");
  printf("  | \n");
  printf(" \\|/\n");
  printf("  |\n");
}
//void代表指向的函数没有返回值
//()代表指向的函数没有形参
//(* roseP)代表roseP是一个指向函数的指针
void (*roseP) ();
roseP = printRose;
roseP();
  • 定义一个Block变量(和定义指向函数的指针很像)
//void代表Block将来保存的代码没有返回值
//()代表Block将来的保存的代码没有形参
//(^roseBlock)代表roseBlock是一个Block变量,可以用于保存一段Block代码
void (^roseBlock) ();
roseBlock = ^{
      printf(" {@}\n");
      printf("  | \n");
      printf(" \\|/\n");
      printf("  |\n");
  };
  //调用Block才会执行Block保存的代码
  roseBlock();
  • 带参数的Block
 void (^roseBlcok) (int);
 roseBlcok = ^(int num){
     for (int i; i < num; i++) {
         printf(" {@}\n");
         printf("  | \n");
         printf(" \\|/\n");
         printf("  |\n");
     }
 };
 roseBlcok(2);
  • typedef 和 Block

    //利用typedef给Block起别名,和函数的指针一样,Block变量的名称就是别名
    typedef int (^caculte) (int,int);
    //实现
    caculte sum = ^(int value1, int value2){
        return value1 + value2;
    };
    
    NSLog(@"sum = %i",sum(5,7));
    
    caculte minus = ^(int value1, int value2){
        return value1 - value2;
    };
    NSLog(@"sum = %i",minus(5,7));
    
    

相关文章

  • 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/sykddttx.html