文档章节

__block在什么情况下使用

j
 jackyzouf
发布于 2015/09/08 12:01
字数 253
阅读 74
收藏 0

以下为转发

API Reference对__block变量修饰符有如下几处解释:

//A powerful feature of blocks is that they can modify 
variables in the same lexical scope. You signal that a block 
can modify a variable using the __block storage type 
modifier. 
//At function level are __block variables. These are mutable
 within the block (and the enclosing scope) and are preserved if any referencing block is copied to the heap.

大概意思归结出来就是两点:
1.__block对象在block中是可以被修改、重新赋值的。
2.__block对象在block中不会被block强引用一次,从而不会出现循环引用问题。

对于第2点,主要用在非ARC环境下,解决循环引用的问题,在ARC环境下要用weak来解决循环引用的问题

对于第1点,是指在block中,如果只是用外部的局部变量的值,那不需要修饰;如果需要修改外部的局部变量的值,就需要__block修饰,ARC和非ARC都要。

© 著作权归作者所有

j
粉丝 0
博文 4
码字总数 2137
作品 0
南京
私信 提问
div与span的用法以及两者的区别与联系

div div是块元素: 块级元素在浏览器显示时,通常会以新行来开始(和结束); 可用于组合其他 HTML 元素的容器; 可用于文档布局,取代了使用表格定义布局的老式方法; 与 CSS 一同使用时, 元...

葶寳寳
2016/11/22
0
0
BAT面试笔记

1、亿级日志中,查找登陆次数最多的十个用户 解题思路:先用哈希表保存登陆次数和ID,然后用红黑树保存最大的十个数。 2、说说你对 OC 中 load 方法和 initialize 方法的异同。 主要说一下执...

背锅侠
2016/04/18
199
0
2019 全网 iOS 面试题以及答案总结!

一、Runtime 一个objc对象的isa的指针指向什么?有什么作用? 一个 NSObject 对象占用多少内存空间? 说一下对 classrw_t 的理解? 说一下对 classro_t 的理解? 说一下对 isa 指针的理解 说...

iOS开发_小迷糊
08/07
0
0
oracle pctfree和pctused详解

一、建立表时候,注意PCTFREE参数的作用 PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被...

benbenming
2012/08/31
118
0
iOS:Block 循环引用问题

循环引用是一个比较常见的问题,之前面试的时候也会被问到,如何解决循环引用问题,其实大家都知道使用block,weak这些修饰符可以解决循环引用问题,那今天我们要讨论的就是他们是怎么样解决了...

Sunxb
04/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ES6

ES6:不改变原理的基础上,让API变得更简单 一、let:代替var用于声明变量 1、var的缺点: (1)声明提前 (2)没有块级作用域 2、let的优点: (1)组织了申明提前 (2)让let所在的块({}),...

wytao1995
今天
3
0
kubernetes 环境搭建 —— minikube

创建集群 minikube start 搭建好 k8s 集群后,可以查看集群的状态以及部署应用。主要用到的是 k8s 的 api,这通常需借助于 kutectl 命令行工具 基本操作 kubectl versionkubectl cluster-i...

lemos
今天
9
0
关于js混淆与反混淆还原操作

使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护。 1、为什么...

开源oschina
今天
11
0
用盛金公式解三次方程(ansi c版)

/* cc cubic.c -lm gcc cubic.c -lm Shengjin's Formulas Univariate cubic equation aX ^ 3 + bX ^ 2 + cX + d = 0, (a, b, c, d < R, and a!= 0). Multiple root disc......

wangxuwei
今天
9
0
JBolt开发平台入门(16)- 弹出Dialog显示指定区域的html内容

在JBolt里,有个主从表Demo。 子表中除了普通的table显示,还有其它从表显示形式 比如下方案例:是针对一个升级管理子表中存放版本的changelog富文本信息。 需求是点击左上角的弹出查看按钮,...

山东-小木
今天
46
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部