首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
刘小壮
掘友等级
iOS开发工程师
世上真正能做大事的人,都是那些无小聪明而有大智慧的人。 大智若愚,
获得徽章 5
动态
文章
专栏
沸点
收藏集
关注
作品
赞
58
文章 56
沸点 2
赞
58
返回
|
搜索文章
赞
文章( 56 )
沸点( 2 )
探秘Runtime - Runtime介绍
OC语言是一门动态语言,会将程序的一些决定工作从编译期推迟到运行期。 由于OC语言运行时的特性,所以其不只需要依赖编译器,还需要依赖运行时环境。 OC语言在编译期都会被编译为C语言的Runtime代码,二进制执行过程中执行的都是C语言代码。而OC的类本质上都是结构体,在编译时都…
iOS黑魔法 - Method Swizzling
就拿我们公司项目来说吧,我们公司是做导航的,而且项目规模比较大,各个控制器功能都已经实现。突然有一天老大过来,说我们要在所有页面添加统计功能,也就是用户进入这个页面就统计一次。我们会想到下面的一些方法: 直接简单粗暴的在每个控制器中加入统计,复制、粘贴、复制、粘贴... 上面这…
组件化架构漫谈
随着移动互联网的不断发展,很多程序代码量和业务越来越多,现有架构已经不适合公司业务的发展速度了,很多都面临着重构的问题。 在公司项目开发中,如果项目比较小,普通的单工程+MVC架构就可以满足大多数需求了。但是像淘宝、蘑菇街、微信这样的大型项目,原有的单工程架构就不足以满足架构需…
KVC原理剖析
KVC全称是Key Value Coding,定义在NSKeyValueCoding.h文件中,是一个非正式协议。KVC提供了一种间接访问其属性方法或成员变量的机制,可以通过字符串来访问对应的属性方法或成员变量。 在NSKeyValueCoding中提供了KVC通用的访问方法,…
探秘Runtime - Runtime的应用
__attribute__是一套编译器指令,被GNU和LLVM编译器所支持,允许对于__attribute__增加一些参数,做一些高级检查和优化。 __attribute__的语法是,在后面加两个括号,然后写属性列表,属性列表以逗号分隔。在iOS中,很多例如NS_CLASS_A…
探秘Runtime - Runtime Message Forward
当一个对象的方法被调用时,首先在对象所属的类中查找方法列表,如果当前类中没有则向父类查找,一直找到根类NSObject。 当一个方法没有实现时,也就是在cache lsit和其继承关系的method list中,没有找到对应的方法。 可以通过重写resolveInstanceM…
探秘Runtime - 深入剖析Category
有了之前Runtime的基础,一些内部实现就很好理解了。在OC中可以通过Category添加属性、方法、协议,在Runtime中Class和Category都是通过结构体实现的。 和Category语法很相似的还有Extension,二者的区别在于,Extension在编译期就…
探秘Runtime - Runtime消息发送机制
在OC中方法调用是通过Runtime实现的,Runtime进行方法调用本质上是发送消息,通过objc_msgSend()函数进行消息发送。 例如下面的OC代码会被转换为Runtime代码。 发送消息的第二个参数是一个SEL类型的参数,在项目里经常会出现,不同的类定义了相同的方法…
下一页
个人成就
文章被点赞
798
文章被阅读
135,501
掘力值
3,832
关注了
12
关注者
2,801
收藏集
1
关注标签
11
加入于
2019-04-05