2013-06-01 2 views

ответ

2
NSInteger x = [textField.text integerValue]; 
+0

Спасибо. Знаете ли вы, как бы вы это сделали с помощью метода вычитания NSInteger givedback = givedback - [self.textField.text integerValue]; Когда я запускаю приложение и вводю номер, появляется сумасшедший номер –

+0

Трудно сказать отсюда. Надо было бы видеть это больше в контексте. Моя рекомендация при отладке состоит в том, чтобы сделать простые выражения вместо составной, потому что в отладчике легче изучить. Например, присвойте integerValue textField значение «x», затем выполните математику «givedback-x». Затем вы можете увидеть, возможно, что x неверно, и проблема заключается в извлечении и преобразовании. Вы даже можете попробовать назначить textField.text локальной NSString, увидеть истинное значение строки и т. Д. Просто что-то для вас, чтобы отлаживать. – hsoi

+0

@Programer Создает ли XCode предупреждение о 'NSInteger givedback = givedback - [self.textField.text integerValue];' code? Потому что вы создаете переменную, а затем используете эту переменную в своей собственной инициализации. – derpoliuk

0

Ответ на вопрос Джона К. Дауба - это прекрасно. Я хотел бы добавить, это также:

NSInteger x = [[NSNumber numberWithInteger:[field.text integerValue]] integerValue]; 

Преимущество NSNumber в том, что если вы хотите, чтобы передать это число в dicitonary, NSNumber помогает.

С другой стороны, достаточно позвонить в integerValue.

+1

Чтобы быть педантичным, он должен быть + numberWithInteger :. – hsoi

+0

Вы имели в виду 'NSNumber x = [NSNumber numberWithInteger: [field.text integerValue]];'? – derpoliuk

+0

@StasDerpoliuk, левая сторона будет NSInteger. так что это должно быть: 'NSInteger x = [NSNumber numberWithInteger: [field.text integerValue]];' для этого случая по крайней мере. Другое вы также можете взять NSNumber с левой стороны. – NeverHopeless