美文网首页
2020-09-08

2020-09-08

作者: 对方正在输入_0 | 来源:发表于2020-09-08 19:21 被阅读0次

blcok 变量的声明

@property(nonatomic,strong)void(^myBlock)();//无参无返回值

@property(nonatomic,strong)void(^myBlock1)(NSString*);//带参数无返回值

@property(nonatomic,strong)NSString*(^myBlock2)(NSString*);//带参数与返回值

//定义变量

void(^myBlock)() =nil;//无参无返回值

void(^myBlock1)(NSString*) =nil;//带参数无返回值

NSString*(^myBlock2)(NSString*) =nil;//带参数与返回值

在Block中只读。Block定义时copy变量的值,在Block中作为常量使用,所以即使变量的值在Block外改变,也不影响他在Block中的值。

int base = 100;

BlkSum sum = ^ long (int a, int b) {

  // base++; 编译错误,只读

  return base + a + b;

};

base = 0;

printf("%ld\n",sum(1,2)); // 这里输出是103,而不是3

static变量、全局变量。如果把上个例子的base改成全局的、或static。Block就可以对他进行读写了。因为全局变量或静态变量在内存中的地址是固定的,Block在读取该变量值的时候是直接从其所在内存读出,获取到的是最新值,而不是在定义时copy的常量。

static修饰变量,效果与_ _block一样

static int base = 100;

BlkSum sum = ^ long (int a, int b) {

  base++;

  return base + a + b;

};

base = 0;

printf("%d\n", base);

printf("%ld\n",sum(1,2)); // 这里输出是3,而不是103

printf("%d\n", base);

表明Block外部对base的更新会影响Block中的base的取值,同样Block对base的更新也会影响Block外部的base值。

https://blog.csdn.net/LVXIANGAN/article/details/43228845

相关文章

  • 01-基础

    2020-09-08互联网 internet网络协议 HTTP HTTPS SMTP MQIT RTMPFTP协...

  • k8s+prometheus+grafana集群监控

    2020-09-08 k8s+prometheus+grafana集群监控 操作系统:Centos 7.6 64b...

  • 2021-01-07

    此为临时链接,仅用于预览,将在短期内失效。关闭 天狼星漂浮疗法培训 光行者之路2020-09-08 导读: 1.简...

  • 20-09错误记录(未解决)

    2020-09-08 ?列表音乐播放切换(上一首、下一首)出错 网上查询资料说是要预加载,调用之前使用load()...

  • 信号

    我怎么如此幸运-重生10-戴红霞(2020-09-08) 我怎么如此幸运-信号 1.我怎么如此幸运借用大杉子今天的...

  • 美国的劳动节labor day

    2020-09-08美国的劳动节labor day 有什么特点? 下面的文字资料有助于了解一下他的历史,特点。ht...

  • 后端代码环境配置

    2020-09-08 从svn拉取代码报错找不到文件应该是包没导全换电脑用maven从新导入所有包发现错误:错误的...

  • 《21天掌握当众讲话技巧》殷亚敏著

    2020-09-08原文:营销天才史玉柱说:“谁消费我的产品,我就要把他研究透。一天不研究透,我就痛苦一天。” 2...

  • 2020-09-08

    If you have any questions or have any suggestions, please...

  • 2020-09-08

    闺蜜写作营值班日记 当写作营的招募值班的时候,我想我作为老大姐,当仁不让要给大家带一个好头,作点贡献,关键的关键...

网友评论

      本文标题:2020-09-08

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