首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
iOS 底层原理系列
wenghengcong
创建于2021-06-30
订阅专栏
深入理解 Objective-C 的语言,Runtime、Runloop、Block、内存管理、多线程等iOS基础原理。
等 1 人订阅
共12篇文章
创建于2021-06-30
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Objective-C(十二)关联对象
本文是Objective-C系列的第12篇,主要讲述了关联对象的底层结构和使用。 1. Category能添加成员变量吗? 我们在Objective-C(十)Category中讲过,Category能添加协议、方法、属性等,参考下面的结构体。 答案是:不可以。 Category…
Objective-C(十一)load和initialize
本文是Objective-C系列的第11篇,主要讲述了及load和initialize两个特殊方法的相关特性及其底层的实现。 在讲述之前,我们先把该两个方法常用到的一些知识点先列出。 根据下列顺序,阅读objc源码即可。 调用load方法,即将上一步抽取出来的方法列表loada…
Objective-C(十)Category
本文是Objective-C系列的第10篇,主要讲述了category的实现原理和相关特性。 category是Objective-C 2.0之后添加的语言特性,分类、类别其实都是指的category。category的主要作用是为已经存在的类添加方法。 可以把类的实现分开在几…
Objective-C(九)KVC与KVO
本文是Objective-C系列的第9篇,主要讲述了KVO的底层实现,以及KVC的使用及KVC中调用流程。 KVO全称Key Value Observing,是苹果提供的一套事件通知机制。允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。由于KVO的实现机制,只针…
Objective-C(八)对象的本质及分类
本文是Objective-C系列的第8篇,主要讲述OC对象的底层结构,以及分类:实例对象、类对象、元类对象。 在上一篇Objective-C(七)对象内存分析分析后,我们得知了一个类在内存中的存储。 本篇在此进一步分析Objective-C类体系的分类及其在内存中的完整分布。 …
Objective-C(七)对象内存分析
本系列接《Effective Objective-C 2.0》一书中的系列文章。 本文主要针对几个类来窥探实例对象在内存中的存储,我们从成员变量和属性入手,本文相关代码在这儿。 Objective-C的对象、类主要是基于C\C++的什么数据结构实现的——结构体。 我们直接通…
Objective-C(六)Block与GCD
这是Objective-C系列的第6篇,也是《Effective Objective-C 2.0》系列的最后一篇。 在创建对象时,可以使用内联的handler Block将相关业务逻辑一并声明。 设计API时,如果遇到handler Block,那么可以新增一个参数,使调用者可…
Objective-C(五)系统框架
这是Objective-C系列的第5篇。 可以给NSCache设置上限,用以限制缓存中的对象总个数及“总成本”,而这些尺度定义了缓存删减其中对象的时机,但是绝对不要把这些尺度当初可靠的“硬限制”。它们仅仅对NSCache起指导作用; 如果缓存使用得当,那么应用程序的响应就能提升…
Objective-C(四)协议与分类
这是Objective-C系列的第4篇。 将应该视为“私有”的方法归入名叫Private的分类中,以隐藏实现细节。 向第三方类中添加分类时,总应该给其中的方法加上你专用的前缀。 在“class-continuation”分类之外的其他分类中,可以定义存取方法,但尽量不要定义属性…
Objective-C(三)接口与API设计
这是Objective-C系列的第3篇。 在类中提供一个全能初始化方法,并与文档中指明。其他初始化方法均应调用此方法; 如果超类方法的初始化方法不适用于子类,那么应该覆写这个超类方法,并在其中抛出异常。 若想在调试时,打印出更详尽的对象描述信息,则应实现debugDescrip…
Objective-C(二)对象、消息、运行期
这是Objective-C系列的第2篇。 在Java或C++中,我们可以定义实例变量的作用域。然而编写Objective-C却很少这么做。这种写法的问题是:对象布局在编译期就已经固定了。只要碰到访问_firstName变量的代码,编译器就把其替换成偏移量(offset),这个偏…
Effective Objective-C 2.0(一)熟悉Objective-C
本系列是根据《Effective Objective-C 2.0》一书中的系列文章,选开发中实践的经验之谈,汇集于此,便于查阅,或者为来访者提供一份参考。编排按《Effective Objective-C 2.0》中条目。 "向前声明"或“前向引用”,仅仅是声明一个类名,并不会…