2016-07-18 5 views
0

В моем классе я определить порт по умолчанию следующим образом:Swift 2.2: Ошибка в UInt16?

private let DEFAULT_PORT: UInt16 = UInt16(47300) 

(я также пытался: private let DEFAULT_PORT: UInt16 = 47300)

Это должно быть совершенно нормально, как максимальное количество UInt16 составляет 65'535.

Приложение аварийно завершает работу одним способом, и отладчик показывает, что DEFAULT_PORT равен -18326.

Как это возможно? Может быть, это ошибка в Свифт? У меня нет подсказки.

+1

Какая ошибка, которую вы получаете, как используется код в этом методе? то, что у вас есть, выглядит нормально, поэтому нам нужно знать остальную информацию. – Scriptable

+0

Нет реальной ошибки. Я передаю порт для создания UserAgent (voip), который не работает, и вызывает ошибку при попытке развернуть экземпляр UserAgent. Я поставил точку останова перед тем, как что-либо выполнится и все еще имеет значение -18326 для DEFAULT_PORT. – Jeyhey

+0

, когда вы говорите «он терпит неудачу и вызывает ошибку», что говорит об ошибке? – Scriptable

ответ

0

Хорошо, я исследовал немного больше. Моя проблема не была связана со значением DEFAULT_PORT.

Что касается отрицательного значения в отладчике, он выглядит как ошибка в Xcode, а не в Swift. Я сделал несколько тестов, и Swift выполняет все операции с правильным значением.

Для воспроизведения любой может определить private let DEFAULT_PORT: UInt16 = UInt16(47300) в AppDelegate и поставить точку останова в didFinishLaunchingWithOptions. Затем вы должны увидеть -18326 как значение в отладчике.