web-dev-qa-db-fra.com

Objective C Analyse Integer de 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 est un entier sans distribution

Qu'est-ce qui ne va pas?

117
Christian Stewart

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;

265
Christian Stewart

Vous pouvez simplement convertir la chaîne comme ça [str intValue] ou [str integerValue]

integerValue Renvoie la valeur NSInteger du texte du destinataire.

  • (NSInteger) integerValue Valeur renvoyée Valeur NSInteger du texte du destinataire, en supposant une représentation décimale et en ignorant les espaces au début de la chaîne. Renvoie 0 si le destinataire ne commence pas par une représentation textuelle décimale valide d’un nombre.

pour plus d'informations, consultez ici

8
Danyun Liu
NSArray *_returnedArguments = [serverOutput componentsSeparatedByString:@":"];

_returnedArguments est un tableau de NSStrings dont le UITextField text propriété attend. 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]];
1
falconcreek

Fondamentalement, le troisième paramètre de 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 de 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.

0
Jorge Israel Peña