Frage

Ich brauche eine NSString aus einer Funktion zurückgeben:

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

    return *myString;       
}

Also, ich diese Funktion aufrufen und * myString erhalten. Ist das ein Zeiger auf die Daten? Wie kann ich auf die Daten „MYDATA“ erhalten?

War es hilfreich?

Lösung

Ich würde diese Funktion die folgende Art und Weise neu zu schreiben:

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

   // do something with myString
   return myString;        
}

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

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top