Para hacerlo, tiene que modificar la definición de tipo original para incluir el nuevo valor:
typedef enum {
UIModalTransitionStyleCoverVertical = 0,
UIModalTransitionStyleFlipHorizontal,
UIModalTransitionStyleCrossDissolve,
UIModalTransitionStylePartialCurl,
UIModalTransitionStyleCoverVerticalFlipped
} UIModalTransitionStyle;
De lo contrario, se puede correr el riesgo de no su trabajo, y definir por separado:
typedef enum {
UIModalTransitionStyleCoverVertical = 0,
UIModalTransitionStyleFlipHorizontal,
UIModalTransitionStyleCrossDissolve,
UIModalTransitionStylePartialCurl,
} UIModalTransitionStyle;
typedef enum {
UIModalTransitionStyleCoverVerticalFlipped =
UIModalTransitionStylePartialCurl + 1
} ExtendedUIModalTransitionStyle;
una variable que podría sostener la enumeración original se normalmente también funcionan perfectamente bien cuando/si se asigna el nuevo valor también (en un caso típico, sólo va a ser un int
) - pero es no garantizado. Al menos en teoría, la implementación puede/podría asignar pocos bits suficientes para mantener esa enumeración de que agregar más valores de esta manera no funcionaría. También podría hacer la verificación de rango para asignar cualquier fuera del valor de rango no estaría permitido. Ninguno de estos es en absoluto común, por lo que desde un punto de vista práctico probablemente no sea un problema, pero desde un punto de vista teórico, nada realmente garantiza que un código como este funcione.
Si tiene el origen del marco, puede hacer esto y cualquier otra modificación que desee. – ognian
Lo que quieres hacer tiene perfecto sentido. Desafortunadamente, las enumeraciones no se pueden extender externamente de la misma manera, por ejemplo, las clases pueden ser (a través de la herencia, etc., etc.). – apollodude217