Перетворити рядок у int


87

У мене проблеми з перетворенням рядка у ціле число. Я погуглив, але все, що я можу знайти, це як перетворити int у рядок. Хтось знає, як це зробити навпаки? Дякую.

Відповіді:



22

Як на рахунок

[@"7" intValue];

Крім того, якщо ви хочете, NSNumberви могли б це зробити

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];

6
доброго господаря NSNumberFormatter є складним ... я маю на увазі "функція завершена".
Дейв Допсон,

4
Обережно - в iOS7, numberFromStringсхоже, це метод екземпляра, а не клас , тому [[NSNumberFormatter new] numberFromString:@"7"];замість цього вам слід це зробити .
mgarciaisaia

@mgarciaisaia ми не повинні робити , [[[NSNumberFormatter alloc] init] numberFromString:@"7"];як на stackoverflow.com/questions/719877 / ...
Майкл Osofsky

3

Я використовую:

NSInteger stringToInt(NSString *string) {
    return [string integerValue];
}

І навпаки:

NSString* intToString(NSInteger integer) {
    return [NSString stringWithFormat:@"%d", integer];
}

1
перевірити своє повернене значення. NSString *
AWF4vk

Я використовую дані, витягнуті з NSUserDefaults, тож що слід розміщувати після NSString * string =
MacN00b

Чи буде насправді щось із цього працювати? Звичайно , ці визначення мають з коми або ви будете врізатися з , unrecognized selectorтому що ви на самому справі будете посилати @selector(intToString:)НЕ @selector(intToString). Звичайно, натомість має бути так - (NSInteger) stringToInt:(NSString *)string;і- (NSString *)intToString:(NSInteger)integer;
Paul.

1
Вони обидві є функціями C. Це має бути NSString *все-таки, як сказав @David.
Еспресо

@Espresso cheers, я не маю досвіду в C, тому зараз більше сенсу
Paul.s


1

Це просте рішення для перетворення рядка в int

NSString *strNum = @"10";
int num = [strNum intValue];

але коли ви отримуєте значення з текстового поля ,

int num = [txtField.text intValue];

де txtField є виходом UITextField


1

Мені довелося зробити щось подібне, але я хотів використовувати геттер / сеттер для мого. Зокрема, я хотів повернути довге з текстового поля. Всі інші відповіді також добре працювали, я просто трохи адаптував свою, коли мій шкільний проект еволюціонував.

long ms = [self.textfield.text longLongValue];
return ms;

0
NSString *string = /* Assume this exists. */;
int value = [string intValue];

Я використовую дані, витягнуті з NSUserDefaults, тож що слід розміщувати після NSString * string =
MacN00b

1
NSString * string = [[NSUserDefaults standardUserDefaults] stringForKey: @ "YOUR_KEY"];
Benjamin Mayo


0

Ще інший спосіб: якщо ви працюєте з рядком C, наприклад const char *, C native atoi()є зручнішим.


0

Ви також можете використовувати як:

NSInteger getVal = [self.string integerValue];


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