web-dev-qa-db-fra.com

Nstring StringwithFormat

Je ne sais pas ce qui me manque ici. J'essaie de concaténer des chaînes en utilisant [NSString stringWithFormat] fonction. C'est ce que je fais.

NSString *category = [row objectForKey:@"category"];
NSString *logonUser = [row objectForKey:@"username"];
user.text = [NSString stringWithFormat:@"In %@ by %@", category, logonUser];

Le problème ici est qu'il n'empêche toujours qu'une seule variable. Dites s'il y a des "sports" dans la catégorie et "Leo" dans Logonuser, il imprimera "dans le sport" et sautera le texte restant. Il devrait imprimer "dans le sport de Leo".

16
Leo

_ user un Uilabel? Assurez-vous que votre texte n'enveloppait pas ou n'est pas coupé. Essayez de faire de l'uilabel plus gros.

15
lucius

Vous devez essayer:

NSlog(@"In %@ by %@", category, logonUser);

Pour vérifier le problème! Laissez-moi savoir les résultats sur la console de débogueur XD

6
Ivan Carosati

Le code a l'air correct:

Par hasard, vous obtenez un retour en voiture ou un espace blanc supplémentaire dans la variable de catégorie? Dans le cas d'une petite étiquette, il peut ne pas afficher la chaîne complète. Essayez d'échanger les deux variables de la troisième ligne et de voir quelle est la sortie.

Je suis déconcerté que même le "par" est absent de la sortie. J'ai l'impression que la valeur de la variable de catégorie masque le texte.

1
Bharat Ahluwalia

Quel est le point pour la première ligne de ce code? Cela semble sans rapport avec la 3ème ligne?

Êtes-vous sûr à 100% que la catégorie et la connexion logonueuse sont remplies dans le code? Peut-être mettre une instruction NSLOG juste après l'utilisateur.text = ligne et assurez-vous qu'ils ont les valeurs que vous attendez parce que votre 3ème ligne a l'air bien.

éditer

J'essaierais de changer

user.text = [NSString stringWithFormat:@"In %@ by %@", category, logonUser];

à

user.text = [NSString stringWithFormat:@"In %@ by %@", @"category", @"logonUser"];

et voir si cette sortie In category by logonUser. Parce que ça me convient certainement.

0
jamone