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 " ;?

È stato utile?

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
scroll top