Question

Je dois retourner une chaîne NSString à partir d'une fonction:

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

    return *myString;       
}

Alors, j'appelle cette fonction et récupère * myString. Est-ce un pointeur sur les données? Comment accéder aux données "MYDATA"?

Était-ce utile?

La solution

Je réécrirais cette fonction de la manière suivante:

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

   // do something with myString
   return myString;        
}

Dans Objective-C, il est plus courant de travailler avec un pointeur sur des objets et non sur des objets eux-mêmes, c'est-à-dire, dans votre exemple avec NSString * , et non NSString .

De plus, @ "MYDATA" est déjà une chaîne. Vous n'avez donc pas besoin d'allouer ni d'initialiser myString avant l'attribution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top