Hihi, ja.
Diverse Feinheiten der Programmiersprache.
Beispiel:
|
Quellcode
|
1
2
3
4
5
|
- (NSString*)stringForObjectValue:(id)obj;
- (BOOL)getObjectValue:(id*)obj forString:(NSString*)string errorDescription:(NSString**)error;
- (bool)isPartialStringValid:(NSString*)partialString newEditingString:(NSString**) newString errorDescription:(NSString**)error;
|
Objective-C ist halt eine Obermenge von C. Alles, was in C geht, geht auch in Objective-C. Klingt logisch, ist bei C# aber eben
nicht der Fall. +grummel+ Anyways.
* = Zeiger.
int * summand = Zeiger namens 'summand', der auf irgend eine Speicheradresse mit der Größe eines Integers (Ganzzahl, vorzeichenbehaftet) zeigt.
int ** summe = Zeiger namens 'summe', der auf irgend eine Speicheradresse zeigt, die auf irgend eine Speicheradresse mit der Größe eines Integers (Ganzzahl, vorzeichenbehaftet) zeigt.
Zeiger sind beim Anfang allesamt Arschlöcher. Wichtig ist hier nur: In Objective-C funktioniert kaum was ohne Zeiger. Genau wie in C.
Und (Erfahrungswert) du hast da vermutlich einen Fehler in deiner Liste. Hinter id steht eigentlich niemals ein *.
Denn id ist definiert als void *, also ein Zeiger names 'id', der auf eine Speicheradresse ohne definierte Größe (void) zeigt. Es werden selten Zeiger auf Zeiger auf id genutzt.
Wie gesagt: diverse Feinheiten.
Ganz niedliche Erklärung für Zeiger (meiner Meinung nach) ist
das hier.