Ich versuche, meinen Kopf um einige der Unterschiede in der Verwendung und Syntax in C vs. Objective-C zu wickeln. Insbesondere möchte ich wissen, wie (und warum) die Verwendung des Punktoperators und des Pfeiloperators in C und Objective-C unterschiedlich ist. Hier ist ein einfaches Beispiel.
C-Code:
// declare a pointer to a Fraction
struct Fraction *frac;
...
// reference an 'instance' variable
int n = (*frac).numerator; // these two expressions
int n = frac->numerator; // are equivalent
Objektiv-C-Code:
// declare a pointer to a Fraction
Fraction *frac = [[Fraction alloc] init];
...
// reference an instance variable
int n = frac.numerator; // why isn't this (*frac).numerator or frac->numerator??
Wenn man also sieht, wie frac
in beiden Programmen gleich ist (d. h. es ist ein Zeiger auf ein Fraction-Objekt oder eine Struktur), warum verwenden sie dann beim Zugriff auf die Eigenschaften eine unterschiedliche Syntax? Insbesondere wird in C die numerator
wird die Eigenschaft mit frac->numerator
aber in Objective-C wird er mit dem Punkt-Operator aufgerufen, mit frac.numerator
. Seit frac
in beiden Programmen ein Zeiger ist, warum sind diese Ausdrücke unterschiedlich? Kann mir jemand helfen, dies zu klären?