he visto este alternativa al uso de CGRectMake()
con el fin de inicializar una variable CGRect
:CGRectMake alternativa
CGRect frame = (CGRect) {0,0,10,10};
Mi pregunta es, ¿cómo funciona CGRect frame = (CGRect){0,0,10,10};
? ¿Qué está pasando detrás de escena? Parece que se está inicializando una matriz c-style ({x,y,w,h}
) que se está lanzando como estructura CGRect
. ¿Es correcto? Si es así, ¿cómo es posible lanzar una matriz de estilo c como una estructura?
N. B. No estoy preguntando si es apropiado usar la alternativa anterior al CGRectMake()
, solo deseo entender por qué y cómo funciona.
Simplemente funciona si las dos sentencias crean la misma secuencia de bytes. Sin embargo, estoy confundido de que está usando 0 y 10 en lugar de 0.0 y 10.0. 0 y 10 se compilarían como constantes enteras y se obtendrían 0.0 y 10.0 como constantes flotantes/dobles. Por lo tanto, dudo que pueda usar float como marco legal para cualquier cosa útil. CGRect es una estructura hecha de CGPoint y CGSize. Ambos están compuestos por dos miembros de CGFload (x e y en el caso de CGPoint y ancho y alto en el caso de CGSize). –