block使用注意

1、定义格式

void (^block)()=^{      //无参无返回值

NSLog(@“helloworld”);

}

int (^myBlock)(int ,int )=^(int x,int y){       //有参有返回值,此时myBlock为变量名

return x+y;

}

2、typedef用法

typedef  int(^myBlock)(int ,int ); //此时myBlock为类型

myBlock b1,b2;

3、访问外部变量

当定义block的时候,会把外部变量以const(只读)的方式复制一份存放到block的所在内存中。

(1)不允许修改外部变量

int m=10;

void (^block)()=^{

m=100;                //错误

NSLog(@“m=%d”,m);

}

(2)允许修改

__block int m=10;

void (^block)()=^{

m=100;                //正确

NSLog(@“m=%d”,m);

}

NSLog(@“m=%d”,m);   //此时m=100

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Block使用场景,可以在两个界面的传值,也可以对代码封装作为参数的传递等。用过GCD就知道Block的精妙之处。...
    Coder_JMicheal阅读 4,057评论 2 1
  • iOS代码块Block 概述 代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,B...
    smile刺客阅读 6,970评论 2 26
  • 前言 Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这...
    小人不才阅读 9,154评论 0 23
  • 转自李峰峰博客 一、概述 闭包 = 一个函数「或指向函数的指针」+ 该函数执行的外部的上下文变量「也就是自由变量」...
    Joshua520阅读 4,633评论 0 0
  • 本章阅读感受 本章的阅读在理解上没什么问题,因为作者给出了一个很清晰的框架,整篇都是在讲解通过什么样的步骤来找出共...
    digman阅读 3,800评论 0 0

友情链接更多精彩内容