zoukankan      html  css  js  c++  java
  • Objective-C语法之代码块(block)的认识与使用

    Blocks定义

    • 定义

      (1)Block是OC中的一种数据类型,在iOS开发中被广泛使用
      (1)^是Block的特有标记
      (2)Block的实现代码包含在{}之间
      (3)大多情况下,以内联inline函数的方式被定义和使用
      (4)Block与C语言的函数指针有些相似,但使用起来更加灵活
    • 示例

      1 void(^demoBlock)() = ^ {
      2     NSLog(@"demo Block");
      3 };
      4 int(^sumBlock)(int, int) = ^(int x, int y) {
      5     return x + y;
      6 };
    • 格式说明:

    1. (返回类型)(^块名称)(参数类型) = ^(参数列表) {代码实现};
    2. 如果没有参数,等号后面参数列表的()可以省略

    Block可以使用在定义之前声明的局部变量

    1 int i = 10;
    2 void(^myBlock)() = ^{
    3     NSLog(@"%d", i);
    4 };
    5 i = 100;
    6 myBlock();
    • 注意:

    1. 在定义Block时,会在Block中建立当前局部变量内容的副本(拷贝)
    2. 后续再对该变量的数值进行修改,不会影响Block中的数值
    3. 如果需要在block中保持局部变量的数值变化,需要使用__block关键字
      使用__block关键字后,同样可以在Block中修改该变量的数值
  • 相关阅读:
    IOS:兼容ios6和低版本
    iOS开发~sizeClass和autolayout
    iOS开发~即时通讯工具参考的一些开源框架和教程
    移动开发网站导航
    mac工具总结
    推送总结(重要)
    IOS常用学习网站和博客
    iOS~静态库开发
    iOS~视频开发
    iOS~视频编码转换
  • 原文地址:https://www.cnblogs.com/wangyinghui/p/4344133.html
Copyright © 2011-2022 走看看