Question NSString d'Objective-C
-
03-07-2019 - |
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"?
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