Red de conocimiento informático - Aprendizaje de programación - La diferencia entre categoría de iOS (Categoría), extensión de clase (extensión) y herencia

La diferencia entre categoría de iOS (Categoría), extensión de clase (extensión) y herencia

iOS introdujo Category en 2.0, que permite a los desarrolladores ampliar las clases sin cambiar las clases originales. La categoría es una sintaxis única en OC. Es un puntero a una estructura de categorías. En principio, solo puede agregar métodos, pero no variables miembro (de instancia). El motivo se explica en el código fuente:

Se puede ver que la estructura contiene principalmente métodos de instancia y métodos de clase definidos por categorías. , donde la lista de métodos_instancia es un subconjunto de la lista de métodos en objc_class, y la lista de métodos_clase es un subconjunto de la lista de métodos de metaclase. Pero no hay ninguna lista de atributos en esta estructura.

Debes estar familiarizado con la herencia y hay mucha información detallada en línea, por lo que no entraré en detalles, pero me centraré en la diferencia entre herencia y clasificación.

La herencia es familiar para todos.