2009-03-02 7 views
4

Ich brauche eine NSString aus einer Funktion zurückzukehren:Objective-C NSString Frage

NSString myfunc (int x) 
{ 
    // do something with x 
    NSString* myString = [NSString string]; 
    myString = @"MYDATA"; 
    // NSLog(myString); 

    return *myString;  
} 

Also, ich nenne diese Funktion und erhalten * myString. Ist das ein Zeiger auf die Daten? Wie komme ich zu den Daten "MYDATA"?

Antwort

13

Ich würde diese Funktion die folgende Art und Weise umschreiben:

NSString* myfunc(int x) 
{ 
    NSString *myString = @"MYDATA"; 

    // do something with myString 
    return myString;   
} 

In Objective-C es ist häufiger mit Zeigern auf Objekte zu arbeiten, Objekte selbst nicht, das heißt, in Ihrem Beispiel mit NSString*, nicht NSString.

Darüber hinaus ist @"MYDATA" bereits eine Zeichenfolge, so dass Sie myString vor der Zuweisung nicht zuordnen und initialisieren müssen.

+0

Wunderbar! Dieses OP sagt Danke :) – Alan

+0

@Alan. Wenn dies geholfen hat, können Sie die Antwort akzeptieren. – Abizern