iPhone Objective-C sintaxis de equivalencia

La sintaxis con corchetes en Objective-C es una de las razones más frustración para los que vienen de otros idiomas (por objetos). Sin embargo, acostumbrarse a él, te das cuenta de cómo leer el código se vuelve demasiado con esta mezcla de clásico y más claramente Smalltalk sintaxis. Por ejemplo, podemos ver cómo el mismo procedimiento se puede escribir tanto en la sintaxis. Tome la inicialización de un UIAlertView :

1
2
3
4
5
6
7
8
[ [ UIAlertView alloc ] initWithTitle : @ "Titolo" UIAlertView MyAlert * = [[UIAlertView alloc] initWithTitle: @ "Título"
"Messaggio" mensaje: @ "Mensaje"
delegado:
"Annulla" cancelButtonTitle: @ "Cancelar"
"Ok" , nil ] ; otherButtonTitles: @ "OK", nil];
; myAlert.tag = 1;
; [MyAlert show];
; [MyAlert liberación];

El ajuste de la potavamo etiqueta que aún así:

1
2
3
4
5
6
7
8
[ [ UIAlertView alloc ] initWithTitle : @ "Titolo" UIAlertView MyAlert * = [[UIAlertView alloc] initWithTitle: @ "Título"
"Messaggio" mensaje: @ "Mensaje"
delegado:
"Annulla" cancelButtonTitle: @ "Cancelar"
"Ok" , nil ] ; otherButtonTitles: @ "OK", nil];
1 ] ; [MyAlert de configuración: 1];
; [MyAlert show];
; [MyAlert liberación];

Lo mismo en la lectura durante el evento:

1
2
3
4
5
void ) alertView : ( UIAlertView * ) alertView clickedButtonAtIndex : ( NSInteger ) buttonIndex { - (Void) alertView: (UIAlertView *) clickedButtonAtIndex alertView: (NSInteger) {buttonIndex
alertView.tag == 1 ) { // ... if (alertView.tag == 1) {/ / ...
/ / O
alertView tag ] == 1 ) { // ... if ([alertView tag] == 1) {/ / ...
}

Nota: No todas las propiedades o los métodos que esta sintaxis dual. En el caso de ' UIAlertView tenemos esta doble funcionalidad. Para otros objetos, o en otros casos, sin embargo, sólo uno de los dos podría funcionar ... pero no preguntes por qué (en función de cómo los desarrolladores han definido la interfaz).

No hay comentarios para esta entrada

Deja un comentario

XHTML PERMISO TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de inserción:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL