Domanda NSString Objective-C
-
03-07-2019 - |
Domanda
Devo restituire un NSString da una funzione:
NSString myfunc ( int x )
{
// do something with x
NSString* myString = [NSString string];
myString = @"MYDATA";
// NSLog(myString);
return *myString;
}
Quindi, chiamo questa funzione e ottengo * myString. È un puntatore ai dati? Come posso accedere ai dati " MYDATA " ;?
Soluzione
Riscriverei questa funzione nel modo seguente:
NSString* myfunc( int x )
{
NSString *myString = @"MYDATA";
// do something with myString
return myString;
}
In Objective-C è più comune lavorare con il puntatore agli oggetti, non agli oggetti stessi, vale a dire, nel tuo esempio con NSString *
, non NSString
.
Inoltre, @ " MYDATA "
è già una stringa, quindi non è necessario allocare e inizializzare myString prima dell'assegnazione.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow