首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Ly梦k
掘友等级
iOS开发工程师
|
老板不让说
一个iOS开发者
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
113
文章 112
沸点 1
赞
113
返回
|
搜索文章
最新
热门
iOS 一个轻量级的组件化思路
说起组件化大家应该都不陌生,不过也再提一下,由于业务的复杂度扩展,各个模块之间的耦合度越来越高,不但造成了“牵一发动全身”的尴尬境地,还增加了测试的重复工程,此时,组件化就值得考虑了。组件化就是将APP拆分成各个组件(或者说模块),同时解除这些组件之间的耦合,然后通过路由中间件…
OC消息转发机制
这里我们在ViewController中直接调用了QFPerson的run方法,但是QFPerson并没有实现这个方法,所以动态添加了这个方法。 关于invocation你熟悉的可以看ResponderChain+Strategy+MVVM实现一个优雅的TableView这里面…
Runtime源码 方法调用的过程
SEL其实就是一个不透明的类型它代表一个方法选择子,在编译期,会根据方法名字生成一个ID。 他是一个函数指针,指向方法实现的首地址。 对第五个参数cache传值为NO,因为在此之前已经做了一个查找这里CacheLookup NORMAL, CALL,这里是对缓存查找的一个优化。…
Runtime源码 +load 和 +initialize
在iOS的开发中,Runtime的方法交换都是写在+load之中,为什么不是+initialize中呢?可能不少朋友对此或多或少有一点点的疑问。 我们知道:OC中几乎所有的类都继承自NSObject,而+load和+initialize用于类的初始化,这两者的区别和联系到底何在…
Runtime源码 Category(分类)
减小单个文件的代码量(维护一个2000代码的类和维护四个500的代码的类差别还是比较明显的)。 把不同功能组织到不同的Category。 不可以添加实例变量。 在上述的代码片段里,addUnattachedCategoryForClass只是把类和category做一个关联映射…
Runtime源码 protocol(协议)
协议定义了一个纲领性的接口,所有类都可以选择实现。它主要是用来定义一套对象之间的通信规则。protocol也是我们设计时常用的一个东西,相对于直接继承的方式,protocol则偏向于组合模式。他使得两个毫不相关的类能够相互通信,从而实现特定的目标。因为OC是单继承的,由于不支持…
Runtime源码 成员变量与属性
上篇文章我们了解了类、对象和isa在runtime中的表示,现在来看看runtime对成员变量和属性的处理。在此之前我们先看看一个重要的概念:类型编码 编译器将每个方法的返回值和参数类型编码为一个字符串,并且将其与方法的selector关联在一起。这个编码方案在其他情况下也是十…
Runtime源码 类、对象、isa
OC做为一门动态语言,runtime是其最大的特点,它是一套底层的 C 语言 API,是 iOS 系统的核心之一。开发者在编码过程中,可以给任意一个对象发送消息,在编译阶段只是确定了要向接收者发送这条消息,而接受者将要如何响应和处理这条消息,那就要看运行时来决定了。在日常开发过…
ResponderChain+Strategy+MVVM实现一个优雅的TableView
在iOS开发中,常见的MVC中,复杂界面的Controller中的代码极其臃肿,动则上千行的代码量对后期维护简直是一种灾难,因此MVC也被调侃为Messive ViewController,特别是有多种类型Cell的TableView存在时,在-tableView:cellFo…
SDWebImage源码解析
说到 iOS界的图片加载库,SDWebImage可谓无人不知,其简介的接口以及异步下载与缓存的强大功能,深受青睐,github上20K+的Star数说明一切。项目的大体框架结构如下: 提供多种接口,到底层调用到同一个方法,减少调用方对可选参数的传递,这样的设计思路在日常的开发中…
下一页
个人成就
文章被点赞
255
文章被阅读
72,003
掘力值
1,695
关注了
61
关注者
996
收藏集
1
关注标签
18
加入于
2016-08-31