En Objective-C, tengo un simple bloque de código que incrementa un contador cada vez que se presiona un botón. Mis registros, e incluso las actualizaciones de la interfaz, muestran un incremento de 4 en lugar de uno. ¿Es solo un problema de visualización con mi formato (estoy usando% d) o algo más que me falta? Mi suposición miente con el "% d" pero soy nuevo en Objective-C y no estoy seguro. . (Nota, también probé "contador + = 1;" con el mismo resultadoEn Objective-C, ¿por qué este incremento en 4 en lugar de 1?
int counterValue = 0;
NSLog(@"Count at init: %d",counterValue);
...
-(IBAction)pushButton {
NSLog(@"Count (Pre-Push) = %d",counterValue);
counterValue++;
NSLog(@"Count (Post-Push) = %d",counterValue);
}
La salida es la siguiente:
2010-02-20 18:39:39.125 My App[37536:207] Count at init: 0
2010-02-20 18:39:39.845 My App[37536:207] Count (Pre-Push) = 0
2010-02-20 18:39:39.846 My App[37536:207] Count (Post-Push) = 4
2010-02-20 18:39:40.165 My App[37536:207] Count (Pre-Push) = 4
2010-02-20 18:39:40.166 My App[37536:207] Count (Post-Push) = 8
2010-02-20 18:39:40.727 My App[37536:207] Count (Pre-Push) = 8
2010-02-20 18:39:40.728 My App[37536:207] Count (Post-Push) = 12
A nit: Los métodos de acción deben ser '- (IBAction) doWhatever: (id) remitente', incluso si no está utilizando el argumento' sender'. – Wevah
@Wevah: no realmente. Mientras que la forma de un argumento es la más popular, todas estas firmas de métodos son igualmente válidas para los métodos de acción: (1) '- (void) action', (2)' - (void) action: (id) sender', (3) '- (void) acción: (id) emisor forEvent: (UIEvent *) event'. Fuente: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIControl_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006779-RH2-SW28 –
Ah, tienes razón . Otra diferencia de UIKit/AppKit, al parecer. (Te modifiqué por ser correcto.;)) – Wevah