runtime是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API。
runtime是属于OC的底层, 可以进行一些非常底层的操作(用OC是无法现实的, 不好实现)
-
在程序运行过程中, 动态创建一个类(比如KVO的底层实现)
-
在程序运行过程中, 动态地为某个类添加属性\方法, 修改属性值\方法
-
遍历一个类的所有成员变量(属性)\所有方法
例如:我们需要对一个类的属性进行归档解档的时候属性特别的多,这时候,我们就会写很多对应的代码,但是如果使用了runtime就可以动态设置!runtime是oc的底层,动态的创建类和方法
const与是static的二者的区别:
const就是只读的意思,只在声明中使用;
static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;
对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见.
staticconst 应该就是上面两者的合集. -
const命名的不能修改其值,防止你以后不经意修改,而static则是防止命名重复。将子程序中的变量使用static
修饰时,表示这个变量在程序开始时分配内存,在程序结束时释放,它们在程序执行期间保持它们的值。const是常量,static是静态变量。