iPhone Objective-C Syntax Gleichwertigkeit

Die Syntax mit eckigen Klammern in Objective-C ist einer der Gründe, die meisten Frustration für diejenigen, die aus anderen Sprachen (für Objekte). Doch daran zu gewöhnen, merkt man, wie der Code lesbar zu wird mit dieser Mischung aus klassischer und deutlicher Syntax Smalltalk. Zum Beispiel sehen wir, wie das gleiche Verfahren in beiden Syntax geschrieben werden können. Nehmen Sie die Initialisierung eines UIAlertView :

1
2
3
4
5
6
7
8
[ [ UIAlertView alloc ] initWithTitle : @ "Titolo" UIAlertView MyAlert * = [[UIAlertView alloc] initWithTitle: @ "Titel"
"Messaggio" Nachricht: @ "Message"
Delegierter: self
"Annulla" cancelButtonTitle: @ "Cancel"
"Ok" , nil ] ; otherButtonTitles: @ "OK", nil];
; myAlert.tag = 1;
; [MyAlert show];
; [MyAlert release];

Die Einstellung der Tag potavamo es sogar so:

1
2
3
4
5
6
7
8
[ [ UIAlertView alloc ] initWithTitle : @ "Titolo" UIAlertView MyAlert * = [[UIAlertView alloc] initWithTitle: @ "Titel"
"Messaggio" Nachricht: @ "Message"
Delegierter: self
"Annulla" cancelButtonTitle: @ "Cancel"
"Ok" , nil ] ; otherButtonTitles: @ "OK", nil];
1 ] ; [MyAlert EINSTELLUNG: 1];
; [MyAlert show];
; [MyAlert release];

Das Gleiche gilt bei der Lektüre während der Veranstaltung:

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

Hinweis: Nicht alle Eigenschaften und Methoden haben diese doppelte Syntax. Im Fall von ' UIAlertView haben wir diese doppelte Funktionalität. Bei anderen Objekten oder in anderen Fällen könnte jedoch nur eine der beiden arbeiten ... aber fragen Sie nicht warum (je nachdem, wie die Entwickler haben das Interface definiert).

Es gibt keine Kommentare für diesen Beitrag

Hinterlasse einen Kommentar

XHTML TAG PERMIT: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERTION CODE:
 <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