Мне нужно установить NSInteger для номера в текстовом поле. И я искал его и не мог найти ответа. Кто-нибудь знает, как это сделатьКод какао-кода для установки номера NSInteger в текстовое поле
ответ
NSInteger x = [textField.text integerValue];
Ответ на вопрос Джона К. Дауба - это прекрасно. Я хотел бы добавить, это также:
NSInteger x = [[NSNumber numberWithInteger:[field.text integerValue]] integerValue];
Преимущество NSNumber
в том, что если вы хотите, чтобы передать это число в dicitonary, NSNumber помогает.
С другой стороны, достаточно позвонить в integerValue
.
Чтобы быть педантичным, он должен быть + numberWithInteger :. – hsoi
Вы имели в виду 'NSNumber x = [NSNumber numberWithInteger: [field.text integerValue]];'? – derpoliuk
@StasDerpoliuk, левая сторона будет NSInteger. так что это должно быть: 'NSInteger x = [NSNumber numberWithInteger: [field.text integerValue]];' для этого случая по крайней мере. Другое вы также можете взять NSNumber с левой стороны. – NeverHopeless
Спасибо. Знаете ли вы, как бы вы это сделали с помощью метода вычитания NSInteger givedback = givedback - [self.textField.text integerValue]; Когда я запускаю приложение и вводю номер, появляется сумасшедший номер –
Трудно сказать отсюда. Надо было бы видеть это больше в контексте. Моя рекомендация при отладке состоит в том, чтобы сделать простые выражения вместо составной, потому что в отладчике легче изучить. Например, присвойте integerValue textField значение «x», затем выполните математику «givedback-x». Затем вы можете увидеть, возможно, что x неверно, и проблема заключается в извлечении и преобразовании. Вы даже можете попробовать назначить textField.text локальной NSString, увидеть истинное значение строки и т. Д. Просто что-то для вас, чтобы отлаживать. – hsoi
@Programer Создает ли XCode предупреждение о 'NSInteger givedback = givedback - [self.textField.text integerValue];' code? Потому что вы создаете переменную, а затем используете эту переменную в своей собственной инициализации. – derpoliuk