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:@":"];
_returnedArguments
是UITextField 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);