2010-12-21 13 views
0

Wenn verschiedene Texte oder Codebeispiele auf Obj-C Lesen I Zeiger Erklärungen wie diese:Pointer Erklärungen in Objective C

NSString *myStringPtr 

aber manchmal sehe ich,

NSString * myStringPtr 

wo es einen Raum zwischen dem Namen und dem *.

Gibt es einen Unterschied zwischen diesen Deklarationen oder sind sie beide nur Zeiger auf ein Objekt vom Typ NSString oder fehlt mir etwas?

Im Allgemeinen ist der Abstand zwischen dem * und dem Namen notwendig?

Ich habe sogar NSString * myStringPtr

Ist das anders als die obigen Aussagen gesehen?

Ich realisiere (NSString *) für Methoden Rückgabetypen oder Argumente bedeutet, dass die Methode einen Zeiger auf ein NSString-Objekt zurückgibt (oder übergeben wird).

Antwort

1

Nein, der Stern kann entweder an den Namen oder den Typ oder dazwischen (mit Leerzeichen als Padding) angehängt werden. Es macht keinen Unterschied. Allerdings Objective-C am häufigsten verwendet die Art

NSString *myStr; 

statt

NSString * myStr; 

oder

NSString* myStr; 

Die Platzierung des Zeigers hat einen Unterschied machen, wenn Sie mehrere Variablen zu deklarieren eine Zeile. Zum Beispiel diese

int* a, b; 

ist funktional identisch mit dieser:

int *a; 
int b; /* Note: This is not a pointer! */ 

(Hinweis: Das gilt auch für C gilt, wie dies technisch eine C-Syntax Problem ist und nicht spezifisch für Objective-C.)

+0

Großartig! Ich habs. Vielen Dank. –