Перетворити NSString на NSInteger?


75

Я хочу конвертувати string data в NSInteger.


2
Якщо
погуглити,

22
Ви повинні прийняти відповіді на свої запитання.
BoltClock

3
У який момент покинуті запитання на кшталт цього виставляються на аукціон для спільноти, щоб купувати з очками репутації .... hmmm :-)
Норман Х

16
@KingOfBliss Я погуглив, і моїм першим хітом став цей пост :)
Стефан Селіс

2
@StephanCelis До цього це був інший допис. Зараз це рейтинг складено на основі більшості переглядів :)
KingofBliss

Відповіді:


144

Якщо рядок є зрозумілим для людини поданням числа, ви можете зробити це:

NSInteger myInt = [myString intValue];

56
Я вважаю, що правою частиною виразу має бути [myString integerValue], ні?
Kyle Clegg

[myString intValue]це темна сторона ахаха
Олександр Перечнєв

4
intValue повертає int, integerValue повертає NSInteger. int - це завжди тип int, але NSInteger змінює типи для скомпільованого пристрою. Про це є щось більше, але рекомендується використовувати NSInteger де це можливо.
Михайло Озерянський

2
Я розчарований. Якщо ви зробите щось подібне, [@"Test" integerValue]воно повернеться, 0тому що Testце не число. Це небезпечний спосіб зробити це.
eMdOS

74

[myString intValue] повертає cType "int"

[myString integerValue]повертає a NSInteger.

У більшості випадків я знаходжу ці прості функції, переглядаючи посилання на клас яблук, найшвидший спосіб дістатися - це натиснути кнопку [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];
}

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.