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?
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;
Vous pouvez simplement convertir la chaîne comme ça [str intValue] ou [str integerValue]
integerValue Renvoie la valeur NSInteger du texte du destinataire.
pour plus d'informations, consultez ici
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]];
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.