静态库与动态库的区别:
静态库:链接时会被完整复制到可执行文件中,被多次使用就有多分拷贝
动态库:链接时不复制,程序运行时由系统动态加载到内存,系统只加载一次,多个程序公用,节省内存
程序启动执行顺序
mac@MacdeMacBook ~ % cd /Users/mac/Desktop/算法Test/算法Test
mac@MacdeMacBook 算法Test % clang -ccc-print-phases main.m
0: input, "main.m", objective-c。 源代码
1: preprocessor, {0}, objective-c-cpp-output 预处理器
2: compiler, {1}, ir。 编译器
3: backend, {2}, assembler。 汇编
4: assembler, {3}, object 机器码
5: linker, {4}, image。 链接器
6: bind-arch, "x86_64", {5}, image。可执行文件
clang -rewrite-objc main.m
命令
xcrun -sdk iphonesimulator clang -rewrite-objc vc.m
clang -rewrite-objc Person.m
runtime 改变对象实例变量的值
动态交换方法
动态添加方法
分类扩展属性