首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
長茳
掘友等级
iOS小迷弟
|
上海
iOS Swift Flutter迷恋者
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
31
文章 31
沸点 0
赞
31
返回
|
搜索文章
最新
热门
iOS之武功秘籍⑭: 锁的原理
在自旋锁中,线程会反复检查变量是否可用.由于线程在这个过程中一致保持执行,所以是一种忙等待. 一旦获取了自旋锁,线程就会一直保持该锁,直到显式释放自旋锁.自旋锁避免了进程上下文的调度开销,因此对于线程只会阻塞很短时间的场合是有效的.对于iOS属性的修饰符atomic,它自带一把…
iOS之武功秘籍⑬: 多线程原理与GCD和NSOperation
多线程在iOS中有着举足轻重的地位,那么本篇文章就来带你全面走进她..... 所以,可以简单的理解为:进程是线程的容器,而线程用来执行任务.在iOS中是单进程开发,一个进程就是一个app,进程之间是相互独立的,如支付宝、微信、qq等,这些都是属于不同的进程. 运行:CPU 负责…
iOS之武功秘籍⑫: KVO原理及自定义
KVO(Key-Value Observing)是苹果提供的一套事件通知机制,这种机制允许将其他对象的特定属性的更改通知给对象.iOS开发者可以使用KVO来检测对象属性的变化、快速做出响应,这能够为我们在开发强交互、响应式应用以及实现视图和模型的双向绑定时提供大量的帮助。 在为…
iOS之武功秘籍⑪: KVC原理及自定义
平常开发中经常用到KVC赋值取值、字典转模型,但KVC的底层原理又是怎样的呢?本篇就来带你走进KVC.. KVC(Key-Value Coding)是利用NSKeyValueCoding 非正式协议实现的一种机制,对象采用这种机制来提供对其属性的间接访问. 集合操作符用得少之又…
iOS之武功秘籍⑩: OC底层题目分析
前面篇章说了那么多的原理,那本篇就拿说说OC相关的题目吧... 所以,关联对象不需要我们手动移除,会在对象析构即dealloc时释放. TCJStudent中的init方法中打印这两种class调用,TCJStudent继续自TCJPerson. 通过clang的底层编译代码可…
iOS之武功秘籍⑨: 类扩展与关联对象
上篇文章介绍了类和分类的加载,那么本篇文章就来介绍类扩展和关联对象的底层原理吧. 通过_mapStorage.get()生成哈希map,其中_mapStorage是一个静态变量,所以 哈希map 永远是通过静态变量获取出来的,所以是全场唯一的. 目前我们的value是有值的,为…
iOS之武功秘籍⑧: 类和分类加载过程
在上一篇文章iOS之武功秘籍⑦: dyld加载流程 -- 应用程序的加载中轻描淡写的提了一句_objc_init的_dyld_objc_notify_register,本文将围绕它展开探索分析类和分类的加载. 此方法的关键代码是 for 循环里面的代码. crash的主要原因是…
iOS之武功秘籍⑦: dyld加载流程 -- 应用程序的加载
下面根据这个问题,我们来探索在走到main函数之前,到底还做了什么. 在探索分析app启动之前,我们需要先了解iOS中App代码的编译过程以及动态库和静态库. 动态库是指链接时不复制,程序运行时由系统加在到内存中,供系统调用,系统只需加载一次,多次使用,共用节省内存. dyld…
iOS之武功秘籍⑥:Runtime之方法与消息
上文说到cache_t缓存的是方法,我们分析了cache的写入流程,在写入流程之前,还有一个cache读取流程,即objc_msgSend 和 cache_getImp.那么方法又是什么呢?这一切都要从Runtime开始说起... Runtime是一套API,由c、c++、汇编…
iOS之武功秘籍⑤:cache_t分析
在上一篇文章中已经全面地介绍了类的结构,但是还剩下一个cache_t cache没有进行详细的介绍,本文就将从源码层面分析cache_t. 其中的_bucketsAndMaybeMask is a buckets_t pointer,是bucket_t类型的结构体指针. 从以上…
下一页
个人成就
文章被点赞
393
文章被阅读
65,161
掘力值
2,138
关注了
22
关注者
487
收藏集
0
关注标签
5
加入于
2019-12-18