将NSString转换为NSInteger?


75

我想转换string dataNSInteger


2
如果您用Google搜索,则可以轻松地在第一击中获得答案
KingofBliss

22
您应该接受问题的答案。
BoltClock

3
到了什么时候,诸如此类的遗弃问题会“拍卖”给社区,以信誉点来购买.... hmmm :-)
Norman H

16
@KingOfBliss我用它搜索了一下,而我的第一招是这篇文章:)
Stephan Celis

2
@StephanCelis在此之前,还有其他帖子。现在,此视图基于最多的视图进行排名:)
KingofBliss 2012年

Answers:


144

如果字符串是数字的可读形式,则可以执行以下操作:

NSInteger myInt = [myString intValue];

56
我相信表达式的右边应该是[myString integerValue],不是吗?
凯尔·克莱格

[myString intValue]是黑暗的一面啊哈哈
Alexander Perechnev 2014年

4
intValue返回一个int,integerValue返回一个NSInteger。int始终是int类型,但是NSInteger会更改已编译设备的类型。除此之外,还建议尽可能使用NSInteger。
Michael Ozeryansky'1

2
我很失望。如果您执行类似操作[@"Test" integerValue],它将返回,0因为Test不是数字。这是一种不安全的方法。
eMdOS

74

[myString intValue] 返回一个cType“ int”

[myString integerValue]返回NSInteger

在大多数情况下,我确实通过查看apples类引用来找到这些简单的函数,最快的方法是单击[option]按钮并双击类声明(在本例中为NSString)。


2
简单实用的技巧。:)
道格拉斯·弗里

23

我发现这是正确的答案。

NSInteger myInt = [someString integerValue];

9
NSNumber *tempVal2=[[[NSNumberFormatter alloc] init] numberFromString:@"your text here"];

如果字符串返回NULL或返回NSNumber

NSInteger intValue=[tempVal2 integerValue];

返回NSNumber的整数



1

这比integerValue更安全:

-(NSInteger)integerFromString:(NSString *)string
{
    NSNumberFormatter *formatter=[[NSNumberFormatter alloc]init];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    NSNumber *numberObj = [formatter numberFromString:string];
    return [numberObj integerValue];
}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.