Runtime:
众所周知,高级语言想要成为可执行文件,需要先编译为汇编语言 -> 再汇编为机器语言,机器语言也就是计算机能够识别的唯一语言,但是OC并不能直接编译为汇编语言,而是需要先转写为纯C语言再进行编译和汇编的操作。
从OC到C语言的过渡就是由RunTime来实现的,然而OC是进行面向对象的开发,而C语言更多的是面向过程开发,这就需要将面向对象的类转变为面向过程的结构体。
RunTime简称运行时,就是系统在运行的时候的一些机制,其中最主要的是消息机制。
2019.11.4
tintColor是什么?
答:1.所有的常用控件,都有tintColor属性。其中,UIView也有这个属性,可想而知继承UIView的控件也都有tintColor了。
2.使用场景:当父视图更改了tintColor为red,那么它所有的一级子视图tintColor全部为red,除非你主动设置过子视图的tintColor。它再往下的子视图的tintColor则遵循直接父视图的tintColor 。
3.如果没有给任何视图指定过tintColor,系统会默认给原生控件指定一个tintColor,比如UIButton的title和UIProgressView的progress都是淡蓝色。
注意是原生控件,如果你的控件是自定义的,比如UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];这样初始化来的,系统就没有为Button 的title颜色指定为默认的蓝色tintColor。
如果你要使用tintColor,需要子类化它,然后在- (void)tintColorDidChange里面写上[self setTitleColor:self.tintColor forState:UIControlStateNormal],就OK了。
这个tintColor属性是从iOS7开始引入的,个人认为苹果的目的是为了界面风格的统一性,因为从7开始,iOS摒弃了原有的拟物化风格而转为了扁平化。
2019.11.4
iOS使用百度地图引入IDFA的问题:
https://www.jianshu.com/p/56892880e003
2019.11.13