OC的动态原理:
静态 与 动态:
内存分配方式:
静态内存分配:(栈 数据段)编译时的概念就是静态
编译时确定内存空间
动态内存分配:堆 运行时确定分配 属于动态概念,
--------------------------------------------------------------------------------------------
函数调用:
C/C++ 函数调用都属于静态 都是编译时检查函数有没有实现;
OC:函数调用属于动态原理 因为OC是运行时才会检查函数有没有实现;编译时不检查
--------------------------------------------------------------------------------------------
OC动态原理的两个应用:
应用一:
SEL sel =NSSelectorFromString([NSStringstringWithUTF8String:skill]);//把OC的字符串转化为选择器类型SEL类型;这个字符串是函数名
应用二:
Class cls =NSClassFromString([NSStringstringWithUTF8String:animal]);//把一个类名的字符串转化为Class类型 类的类型;
//当我们不知道要输入是哪个类的类名时,我们可以用Class