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 作为值。
在我的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 作为值。