【发布时间】:2016-02-21 18:30:40
【问题描述】:
当我将 UInt16(超过 32767 的值)转换为 Int16 时,如何避免程序崩溃。
在 Object-C 中既简单又安全:
uint16_t a = 32888
int16_t b = (int16_t)a
但我对 Swift 没有任何想法。
【问题讨论】:
-
显然您可以在进行无效转换之前检查范围。
-
为什么要使用带符号的 16 位整数作为可能结束的值?只需使用更大的数据类型...
-
因为我必须打开一个定义了 UInt16 格式的文件
-
我希望引用的线程回答你的问题。在您的情况下,它将是:
let a : UInt16 = 32888 ; let b = Int16(bitPattern: a). -
谢谢马丁,你为我提供了一种方便的方式
标签: swift