122 votes

ObjectiveC Parse Integer from String

J'essaie d'extraire une chaîne (qui contient un entier) d'un tableau, puis de l'utiliser comme int dans une fonction. J'essaye de le convertir en int en utilisant intValue.

Voici le code que j'ai essayé.

   NSArray *_returnedArguments = [serverOutput componentsSeparatedByString:@":"];
  [_appDelegate loggedIn:usernameField.text:passwordField.text:(int)[[_returnedArguments objectAtIndex:2] intValue]];
 

Je reçois cette erreur:

en passant l'argument 3 de 'logsIn :::', le pointeur devient un entier sans transtypage

Qu'est-ce qui ne va pas?

271voto

Christian Stewart Points 5729

Je ne sais vraiment pas ce qui était si difficile avec cette question, mais j'ai réussi à le faire de cette façon:

[myStringContainingInt intValue];

Il convient de noter que vous pouvez également faire:

myStringContainingInt.intValue;

8voto

Danyun Points 925

Il vous suffit de convertir la chaîne de caractères comme ça [str intValue] ou [str integerValue]

integerValue Retourne le NSInteger valeur du récepteur du texte.

  • (NSInteger)integerValue Valeur De Retour Le NSInteger valeur du récepteur du texte, en supposant une représentation décimale et en ignorant les espaces blancs au début de la chaîne. Retourne 0 si le récepteur n'est pas de commencer avec un nombre décimal valide du texte à la représentation d'un nombre.

pour plus d'informations, reportez-vous ici

1voto

falconcreek Points 3657
 NSArray *_returnedArguments = [serverOutput componentsSeparatedByString:@":"];
 

_returnedArguments est un tableau de NSStrings auquel la propriété UITextField text est attendue. Pas besoin de convertir.

Erreur de syntaxe:

 [_appDelegate loggedIn:usernameField.text:passwordField.text:(int)[[_returnedArguments objectAtIndex:2] intValue]];
 

Si votre _appDelegate a une propriété passwordField , vous pouvez définir le texte à l'aide de ce qui suit

 [[_appDelegate passwordField] setText:[_returnedArguments objectAtIndex:2]];
 

0voto

Jorge Israel Peña Points 12602

Fondamentalement, le troisième paramètre dans loggedIn ne devrait pas être un entier, mais plutôt un objet, mais nous ne pouvons pas le savoir avec certitude car vous n'avez pas nommé les paramètres dans l'appel à la méthode. Fournissez la signature de la méthode afin que nous puissions voir à coup sûr. Peut-être que cela prend un NSNumber ou quelque chose.

-1voto

beefon Points 1844

Si je vous ai bien compris, vous devez convertir votre NSString en int ? Essayez cette paix de code:

 NSString *stringWithNumberInside = [_returnedArguments objectAtIndex:2];
int number;
sscanf([stringWithNumberInside UTF8String], "%x", &flags);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X