07 2018 档案
摘要:在runtime时,动态的给对象增加键值或属性(或者形象的比喻为给对象Object插上本没有的大翅膀,让Object的能力更强大),通过 import,调用下面的两个函数即可以实现: 先看给对象动态的绑定其它对象或值的例子: 例子的效果是:点击按钮后,label的文字变成了nice_button。
阅读全文
摘要:Swift是为macOS、iOS、watchOS和tvOS设计的一门编程语言。简单易学、语法简单,交互性强都是它的特点。在设计这门语言时,就很注重考虑它的安全性,而且编译运行时也是非常的轻量快速。 Swift 4 是基于Swift 3 上的加强版本,带来更好的健壮性和稳定性。并且可以兼容Swift
阅读全文
摘要:总结与记录block的语法使用 局部变量: 类属性(property): 方法声明中的参数: 方法调用中的参数: typedef的方式: 仔细观察上面的block使用规范,可以总结出: ^符号在括号外部时,block是匿名的,后面跟上block返回类型。在括号内部时,^符号后面跟上block的名称。
阅读全文
摘要:NSProxy 一个抽象的超类,并且是不继承自NSObject的。可以通过它的API为其它的Object对象或者不存在的对象提供替身。 大概意思就是:我们知道狗不能飞,但是如果你通过NSProxy强行调用[狗 飞]的时候,可以通过NSProxy的提供的API,让狗飞的这个操作交给鸟来执行,前提是NS
阅读全文
摘要:接上一篇,说到了objc_class里面的method_list,以及SEL与IMP的一一对应关系,以及消息的发送处理过程,留下了动态方法解析和消息转发的迷点,这篇就继续学习这个留下的迷点。 一、动态方法解析 动态方法解析,顾名思义,就是在runtime时期动态的提供一个方法的实现。 举个栗子: 。
阅读全文
摘要:接上篇、说到了Runtime的基本认识、Runtime与Objective C的关系、以及陈述了objc_msgSend的过程。并且留下了一个线索,这篇就是对上篇留下的线索 结构体做分析学习。 objc_class 先看下这个结构体里面的定义: 从上面的objc_class的定义里面,看到了作为一个
阅读全文
摘要:前一篇关于NSProxy代理涉及到的关于消息转发,把以前写的runtime文章从github上转移过来。一共三篇,似乎自己也忘记了一些runtime的细节,需要温故一下。 一、什么是Objc的Runtime? Runtime是Objc语言的磐石,Objc语言得以运行,也是依靠runtime库的支持。
阅读全文
摘要:CADisplayLink 一个可以让你的App同步屏幕刷新帧率的定时器对象。在初始化CADisplayLink的时候,提供一个target和selector,这样当屏幕刷新的时候,会根据target调用对应的selector方法,需要将这个定时器添加到run loop中去同步屏幕的刷新loop。
阅读全文
摘要:近期主要是在搞iOS的即时通讯的开发,第一个及时聊天版本已经上线了。前期曾考虑过聊天类的SDK,因为考虑到深度的定制并且与业务的需求高度相关,但最后选择了自己实现整套聊天的过程。 前端使用的是SocketRocket、如之前的文章有所叙述。 "文章链接" 。 后端使用的是 "WorkerMan" 。
阅读全文

浙公网安备 33010602011771号