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