преобразование большого числа из NSString в NSNumber - PullRequest
0 голосов
/ 10 ноября 2011

Я знаю, что, возможно, мне здесь не хватает чего-то довольно простого, но я пытаюсь преобразовать число, введенное в UITextField из NSString, в NSNumber следующим образом:

self.currentServer.port = [NSNumber numberWithInt:[addressPortTextField.text doubleValue]];
NSLog(@"Port: %@ / %@", addressPortTextField.text, self.currentServer.port);

Число в self.currentServer.port is 50000

NSLog показывает следующее:

Порт: 50000 / -15536 ​​

Я не понимаю, что я делаю здесь неправильно?Я пытался с doubleValue, intValue, integerValue.

* Я нашел проблему **

самостоятельно.currentServer.port является полем coredata типа Integer16.50000 слишком велико для этого размера поля, я обновил базу данных до Integer32, и теперь все в порядке.


Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Эта строка неверна:

 self.currentServer.port = [NSNumber numberWithInt:[addressPortTextField.text doubleValue]];

и может быть источником проблемы. Вы конвертируете текст в double, а затем сохраняете значение в int. Если вы попробуете:

self.currentServer.port = [NSNumber numberWithInteger:[addressPortTextField.text integerValue]];

также важно, как вы определили currentServer.port.

0 голосов
/ 10 ноября 2011

self.currentServer.port = [NSNumber numberWithInt:[addressPortTextField.text doubleValue]];

Обратите внимание, что вы получаете двойное значение из текстового поля, это действительно то, что вы хотите? Затем вызывая numberWithInt для двойного значения.

То, что вы, вероятно, хотите, это self.currentServer.port = [NSNumber numberWithInt:[addressPortTextField.text integerValue]];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...