前言
最近项目要更新版本,然而以为会跟往常一样,提交后2-3天通过,结果这次可没有没有那么顺利了,两个客户端一起提交上去,相继悲剧。
Korbin's Blog
推流:LFLiveKit 播放:ijkplayer 服务器:nginx+rtmp
Runtime 是 Objective-C 区别 C 语言等静态语言的一个非常重要的特性。对于 C 语言,函数的调用会在编译期就已经决定好,在编译完成后直接顺序运行。但是 OC 是一门动态语言,函数调用变成了消息转发,在编译阶段是不知道要调用哪个函数。所以 Runtime 无非就是去解决如何在运行时期找到调用方法这样的问题。 对于实例变量:
instance -> class -> method -> SEL -> IMP -> 函数方法
我们在 iOS 开发中经常需要使用分类(Category),为已经存在的类添加属性的需求,但是使用 @property
并不能在分类中正确创建实例变量和存取方法。
在 ReactiveCocoa 中除了不可变的信号 RACSignal
,也有用于桥接非 RAC 代码到 ReactiveCocoa 世界的『可变』信号 RACSubject
。
因为 ObjC 的 runtime 只能在 Mac OS 下才能编译,所以文章中的代码都是在 Mac OS,也就是
x86_64
架构下运行的,对于在 arm64 中运行的代码会特别说明。
在之前,我们已经讨论了非常多的问题了,关于 objc 源代码系列的文章也快结束了,其实关于对象是如何初始化的这篇文章本来是我要写的第一篇文章,但是由于有很多前置内容不得不说,所以留到了这里。