У меня проблемы с преобразованием строки в целое число. Я погуглил, но все, что я могу найти, это как преобразовать int в строку. Кто-нибудь знает, как сделать наоборот? Спасибо.
Ответы:
См. Справку по классу NSString .
NSString *string = @"5";
int value = [string intValue];
Как насчет
[@"7" intValue];
Кроме того, если вы хотите, NSNumber
вы можете сделать
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];
numberFromString
похоже, это метод экземпляра, а не класс , поэтому вам следует это сделать [[NSNumberFormatter new] numberFromString:@"7"];
.
[[[NSNumberFormatter alloc] init] numberFromString:@"7"];
согласно stackoverflow.com/questions/719877/…
Я использую:
NSInteger stringToInt(NSString *string) {
return [string integerValue];
}
Наоборот:
NSString* intToString(NSInteger integer) {
return [NSString stringWithFormat:@"%d", integer];
}
unrecognized selector
потому что вы на самом деле будете посылать @selector(intToString:)
не @selector(intToString)
. Конечно, это должно быть так, - (NSInteger) stringToInt:(NSString *)string;
и- (NSString *)intToString:(NSInteger)integer;
NSString *
Хотя это должно быть , как сказал @David.
Swift 3.0:
Int("5")
или
let stringToConvert = "5"
Int(stringToConvert)
Мне пришлось сделать что-то подобное, но я хотел использовать геттер / сеттер. В частности, я хотел вернуть длинный текст из текстового поля. Другие ответы тоже сработали, я просто немного адаптировал свой по мере развития моего школьного проекта.
long ms = [self.textfield.text longLongValue];
return ms;
NSString *string = /* Assume this exists. */;
int value = [string intValue];
Чтобы преобразовать число String в Int , вы должны сделать это:
let stringNumber = "5"
let number = Int(stringNumber)