首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
YOGURTS
掘友等级
iOS开发
|
bilibili
iOS寻路人
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
27
文章 25
沸点 2
赞
27
返回
|
搜索文章
最新
热门
[iOS]Block系列探究七 - Block循环引用
这次,我们来探究一下Block的循环引用,并且探讨一下如何避免循环引用。 两个对象直接或者间接的引用对方就是循环引用。 循环引用的两个对象无法释放。 上面的代码,在退出viewController的时候,block因为被viewController强引用,引用计数不为0,无法销…
[iOS] Core Foundation - Ownership Policy
偶然间看到这篇文档,所以记录下来。文档出处:Ownership Policy 当我们在APP中使用Core Foundation API时,为了避免内存泄漏,在获取对象或者创建对象时应该遵守Core Foundation的相关规定。 在使用Core Foundation时,Ow…
[iOS]Block系列探究六 - __block变量和对象
之前的文章[iOS]Block系列探究二 - 捕获变量谈论过__block是如何处理基础类型的局部变量使block内部可以修改局部变量的。这篇文章我们仔细研究下__block说明符修饰变量和对象。 首先我们研究一下__block说明符修饰局部变量。不多说,直接上OC代码: 我们…
[iOS]Block系列探究五 - 截获对象
上一篇文章我们探究了一下__block变量的存储域。这一篇文章我们研究一下Block是如何截获对象的。 首先我们看一下栈block截获对象会是什么情况。 __main_block_impl_0结构体中的成员NSMutableArray *__strong arrM;会强引用ar…
[iOS]Block系列探究四 - __block变量存储域
上一篇文章研究了一下Block的存储域,这一篇文章我们来研究下__block变量的存储域。 会报错,报错信息为__block attribute not allowed, only allowed on local variables。 为什么会报错呢?其实也比较容易理解,__…
[iOS]Block系列探究三 - Block存储域
程序区域(.text区)- 存放函数体的二进制代码。 数据区域(.data区)- 主要包括静态全局区(全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后有系统释放。)和常量区(常量字符…
[iOS]Block系列探究二 - 捕获变量
上一篇文章中我们得知了OC的block其实就是C的函数指针,这一篇文章我们来研究下block与局部变量的各种化学反应。 我们可以看到__main_block_impl_0结构体多了两个成员变量count和static_count。 在声明block时,count的值就已经被保存…
[iOS]Block系列探究一 - 初探
一直搞不懂OC的Block和Java的Lambda,特意研究了一下OC的Block。如果有理解不对或者不到位的地方,欢迎指正。 这一篇我们先梳理一下Block从声明到调用的大致流程。 带着疑问,我们往下看。 上面代码中的funcPtr并不是函数名,而是一个指针变量,它指向了fu…
个人成就
文章被点赞
21
文章被阅读
13,508
掘力值
348
关注了
42
关注者
17
收藏集
2
关注标签
3
加入于
2017-10-09