Block为什么使用Copy?
2024-09-04 17:26:32
block:本质就是一个object-c对象
block:存储位置,可能分为3个地方:代码去,堆区、栈区(ARC情况下会自动拷贝到堆区,因此ARC下只能有两个地方:代码去、堆区)
代码区:
不访问栈区的变量(如局部变量),且不访问堆区的变量(alloc创建的对象),此时block存放在代码去。
堆区:
访问了处于栈区的变量,或者堆区的变量,此时block存放在堆区。–需要注意实际是放在栈区,在ARC情况下会自动拷贝到堆区,如果不是ARC则存放在栈区,所在函数执行完毕就会释放,想再外面调用需要用copy指向它,这样就拷贝到了堆区,strong属性不会拷贝、会造成野指针错区。
by:ml
最新文章
- Tcl internal variables
- IOS下载查看PDF文件(有下载进度)
- ftp 根据特定正则匹配文件名 下载到本地 并且上传文件到ftp java *** 最爱那水货
- 【转】Eclipse快捷键 10个最有用的快捷键
- Oracle补习班第四天
- Android View -- setTranslationX
- VedioCaptureHelper
- Arduino中的数据类型范围
- hive UDAF
- [Interview][CodingExam]
- jQuery 2.2 和 1.12 新版本发布
- js--3目运算符
- 基于 Electron 的爬虫框架 Nightmare
- 03_Nginx添加新模块
- oracle数据库语句积累
- Ubuntu 18.04 LTS 常用软件安装杂记
- 虚拟机使用ceph-deploy安装ceph
- winform复制文件到指定目录
- Tallest Cow POJ - 3263 (区间点修改)
- 【雅思】【写作】【大作文】Advantage VS. Disadvantage