Преобразовать NSString в NSInteger?

Я хочу преобразовать string data в NSInteger.


person The deals dealer    schedule 25.01.2011    source источник
comment
Если вы погуглите, вы можете легко получить ответ в самом первом попадании.   -  person KingofBliss    schedule 25.01.2011
comment
Вы должны принять ответы на свои вопросы.   -  person BoltClock    schedule 25.01.2011
comment
В какой момент такие заброшенные вопросы продаются с аукциона, чтобы сообщество могло купить их за очки репутации.... хммм :-)   -  person Norman H    schedule 15.05.2012
comment
@KingOfBliss Я погуглил, и мой первый хит был этот пост :)   -  person Stephan Celis    schedule 02.11.2012
comment
@StephanCelis До этого был какой-то другой пост. Теперь это рейтинг на основе наибольшего количества просмотров :)   -  person KingofBliss    schedule 06.11.2012


Ответы (6)


Если строка представляет собой удобочитаемое представление числа, вы можете сделать это:

NSInteger myInt = [myString intValue];
person Aurum Aquila    schedule 25.01.2011
comment
Я считаю, что правая часть выражения должна быть [myString integerValue], нет? - person Kyle Clegg; 03.11.2012
comment
[myString intValue] это тёмная сторона ахаха - person Alexander Perechnev; 09.12.2014
comment
intValue возвращает int, integerValue возвращает NSInteger. int всегда является типом int, но NSInteger меняет типы для скомпилированного устройства. Об этом есть еще кое-что, но рекомендуется использовать NSInteger везде, где это возможно. - person Michael Ozeryansky; 12.01.2015
comment
Я разочарован. Если вы сделаете что-то вроде [@"Test" integerValue], он вернет 0, потому что Test не является числом. Это небезопасный способ сделать это. - person eMdOS; 19.09.2017

[myString intValue] возвращает cType "int"

[myString integerValue] возвращает NSInteger.

В большинстве случаев я нахожу эти простые функции, просматривая ссылки на классы яблок, самый быстрый способ получить их — нажать кнопку [опция] и дважды щелкнуть объявления класса (в данном случае NSString ).

person EtienneSky    schedule 25.01.2011
comment
простой и полезный совет. :) - person Douglas Frari; 02.10.2013

Я нашел, что это правильный ответ.

NSInteger myInt = [someString integerValue];
person pixelsize    schedule 23.12.2013

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

возвращает NULL, если строка, или возвращает NSNumber

NSInteger intValue=[tempVal2 integerValue];

возвращает целое число NSNumber

person Community    schedule 26.11.2015

это безопаснее, чем integerValue:

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

person    schedule
comment
Он попросил об обратном. - person Lev; 15.05.2015