From a3b947983310b22eedf08d2f0b64edcd034aadcd Mon Sep 17 00:00:00 2001 From: liberalisman <294992146@qq.com> Date: Thu, 26 Jul 2018 14:49:02 +0800 Subject: [PATCH] update --- ...24\351\242\230\347\232\204\345\211\257\346\234\254 3.md" | 5 +++++ ...24\351\242\230\347\232\204\345\211\257\346\234\254 4.md" | 5 +++++ ...\224\351\242\230\347\232\204\345\211\257\346\234\254.md" | 5 +++++ "Runtime/4.\347\254\254\345\233\233\351\242\230.md" | 6 +++++- 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 "Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254 3.md" create mode 100644 "Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254 4.md" create mode 100644 "Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254.md" diff --git "a/Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254 3.md" "b/Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254 3.md" new file mode 100644 index 0000000..8840cdc --- /dev/null +++ "b/Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254 3.md" @@ -0,0 +1,5 @@ +## 25.`Obj-c`对象、类的本质是通过什么数据结构实现的? + +结构体。 + +譬如一个最常见的 `Nsobject` 对象。将其编译为 `C++` 代码后,实际上就是一个 `Nsobject_Impl` 结构体。 \ No newline at end of file diff --git "a/Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254 4.md" "b/Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254 4.md" new file mode 100644 index 0000000..8840cdc --- /dev/null +++ "b/Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254 4.md" @@ -0,0 +1,5 @@ +## 25.`Obj-c`对象、类的本质是通过什么数据结构实现的? + +结构体。 + +譬如一个最常见的 `Nsobject` 对象。将其编译为 `C++` 代码后,实际上就是一个 `Nsobject_Impl` 结构体。 \ No newline at end of file diff --git "a/Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254.md" "b/Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254.md" new file mode 100644 index 0000000..8840cdc --- /dev/null +++ "b/Runtime/25.\347\254\254\344\272\214\345\215\201\344\272\224\351\242\230\347\232\204\345\211\257\346\234\254.md" @@ -0,0 +1,5 @@ +## 25.`Obj-c`对象、类的本质是通过什么数据结构实现的? + +结构体。 + +譬如一个最常见的 `Nsobject` 对象。将其编译为 `C++` 代码后,实际上就是一个 `Nsobject_Impl` 结构体。 \ No newline at end of file diff --git "a/Runtime/4.\347\254\254\345\233\233\351\242\230.md" "b/Runtime/4.\347\254\254\345\233\233\351\242\230.md" index eeeffe8..05cb9f2 100644 --- "a/Runtime/4.\347\254\254\345\233\233\351\242\230.md" +++ "b/Runtime/4.\347\254\254\345\233\233\351\242\230.md" @@ -26,4 +26,8 @@ static struct _catrgory_t _OBJC_$_CATEGORY_NSObject_$_Tools __attribute__ ((used ``` -`Category` 在刚刚编译完的时候,和原来的类是分开的,只有在程序运行起来后,通过 `Runtime` ,`Category` 和原来的类才会合并到一起。 \ No newline at end of file +`Category` 在刚刚编译完的时候,和原来的类是分开的,只有在程序运行起来后,通过 `Runtime` ,`Category` 和原来的类才会合并到一起。 + + + +`mememove`,`memcpy`:这俩方法是位移、复制,简单理解就是原有的方法移动到最后,根根新开辟的控件,把前面的位置留给分类,然后分类中的方法,按照倒序依次插入,可以得出的结论就就是,越晚参与编译的分类,里面的方法才是生效的那个。 \ No newline at end of file