Swift 2.2:UInt16 中的错误?

Swift 2.2: Bug in UInt16?

在我的class中我定义了一个默认端口如下:

private let DEFAULT_PORT: UInt16 = UInt16(47300)

(我也试过了:private let DEFAULT_PORT: UInt16 = 47300

这应该完全没问题,因为 UInt16 的最大数量是 65'535。

应用程序在一种方法中崩溃,但调试器显示 DEFAULT_PORT 等于 -18326。

这怎么可能?这可能是 Swift 中的错误吗?我不知道。

好的,我调查了一下。我的问题与 DEFAULT_PORT.

的值无关

关于调试器中的负值,在我看来它像是 Xcode 中的错误,而不是 Swift 中的错误。我做了一些测试,Swift 使用正确的值进行了所有操作。

要重现任何人都可以在 AppDelegate 中定义 private let DEFAULT_PORT: UInt16 = UInt16(47300) 并在 didFinishLaunchingWithOptions 中放置一个断点。然后您应该在调试器中看到 -18326 作为值。