cocoa-touch - qué - formularios banco de la republica
Declaraciones de cambio de Object C y constantes de entero con nombre (2)
Esto se debe a que la declaración de caso requiere expresión constante. Ahora en C y, por lo tanto, en Obj-C, hacer una constante const no crea una constante verdadera. Por lo tanto, está obteniendo este error. Pero si usa C ++ u Obj-C ++, entonces esto funcionará.
Tengo un controlador que sirve como un delegado a dos scrollviews que se colocan a la vista administrado por el controlador de vista antes mencionado.
Para distinguir entre dos vistas de desplazamiento, intento usar la declaración de cambio (en lugar de la comparación de un solo puntero con la instrucción if
). He etiquetado ambas vistas de desplazamiento como 0 y 1 como esta
NSUInteger const kFirstScrollView = 0;
NSUInteger const kSecondScrollView = 1;
Cuando trato de usar estas constantes en una instrucción switch, el compilador dice que las sentencias case no son constantes.
switch (scrollView.tag) {
case kFirstScrollView: {
// do stuff
}
case kSecondScrollView: {
// do stuff
}
}
¿Qué estoy haciendo mal?
Esto se puede resolver mediante el uso de un tipo de enum
anónima (aunque no necesariamente):
enum {
kFirstScrollView = 0,
kSecondScrollView = 1
};
switch (scrollView.tag) {
case kFirstScrollView: {
// do stuff
}
case kSecondScrollView: {
// do stuff
}
}
Esto se compilará sin errores.