una republica qué que pueden práctico presentarse formularios formulario eventos ejercicio declaración declaracion concepto con cambio banco cocoa-touch uiscrollview switch-statement uiscrollviewdelegate

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á.

Algunos consejos más están disponibles aquí y aquí .

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.