características del tiempo de ejecución de ios

object-c是一种运行时语言。
每当我们在程序开头写上#import XXXXX的时候,其实相当于我们把这个类整个地写到我们的程序当中了,而程序运行的开始时,一些语言就会去检查主程序里面的每一个变量,方法是否有问题。这样会造成程序的效率比较低下,而object—c这个语言的检查时机,是我们发送消息的时候,你甚至可以少写一个按钮的返回方法,当我们加载这个程序的时候并不会出现任何错误,只有我们点击这个按钮的时候才会报错。
在一种语言中我们写上static void methodS(){

. . . .
}
, el contenido dentro de estas llaves se compilará, pero el segundo objeto se compilará cuando realmente use los métodos.
runtime también tiene muchas ventajas, como que es de código abierto. Cuando escribimos un programa objeto, la función de tiempo de ejecución operará automáticamente para traducir nuestro programa a lenguaje de máquina. Cada una de nuestras clases hereda de la clase NSObject y hay muchos métodos en esta clase para interactuar con funciones de tiempo de ejecución. El sistema de tiempo de ejecución tiene una biblioteca dinámica. Al heredar la interfaz de esta biblioteca, también podemos operar el tiempo de ejecución en nuestros propios programas.
Veamos la definición de objc_class (es decir, una clase, no un objeto)

structobjc_class{

Class isa  OBJC_ISA_AVAILABILITY;

#si ! OBJC2

Classsuper _class OBJC2_UNAVAILABLE; //clase principal
constchar *name OBJC2_UNAVAILABLE; //nombre de la clase
versión larga OBJC2_UNAVAILABLE; //información de la versión de la clase, el valor predeterminado es 0
información larga OBJC2_UNAVAILABLE; //información de la clase, alguna identificación de bits para uso en tiempo de ejecución
longinstance _size OBJC2_UNAVAILABLE; // el tamaño variable de instancia de esta clase
struct objc_ivar_list *ivars objc2_unavailable; // La lista variable de miembro de esta clase
struct objc_method_list *métodListsistsist objc2_unavailable; // La lista vinculada de la definición de método
structObjc_cache objc2_unavailable; // método cachejc
structure OBJC2_UNAVAILABLE; // lista enlazada de protocolos
#endif

}OBJC2_NO DISPONIBLE;
`

Supongo que te gusta

Origin blog.csdn.net/qq_36740186/article/details/77651303
Recomendado
Clasificación