ObjectiveC从string中parsing整数

我试图从数组中提取一个string(其中包含一个整数),然后将其用作一个函数中的int。 我想使用intValue将其转换为一个int。

这是我一直在尝试的代码。

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

我得到这个错误:

通过“loggedIn :::”的参数3使得来自整数的指针没有转换

怎么了?

我真的不知道这个问题有多难,但我设法这样做:

[myStringContainingInt intValue];

应该指出的是,你也可以这样做:

myStringContainingInt.intValue;

你可以像这样转换string[str intValue]或[str integerValue]

integerValue返回接收者文本的NSInteger值。

  • (NSInteger)integerValue返回值接收方文本的NSInteger值(假设为十进制表示并跳过string开头的空格)。 如果接收方没有以数字的有效小数文本表示开始,则返回0。

更多信息请参考这里

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

_returnedArgumentsUITextField text属性期望的NSStrings的数组。 无需转换。

语法错误:

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

如果您的_appDelegate具有passwordField属性,则可以使用以下设置文本

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

基本上, loggedIn的第三个参数不应该是一个整数,它应该是某种types的对象,但我们无法确定,因为您没有在方法调用中指定参数。 提供方法签名,以便我们可以确定地看到。 也许它需要一个NSNumber或什么的。

如果我正确理解你,你需要将你的NSString转换为int ? 试试这个和平的代码:

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