我有以下枚举:
enum Enum: UInt8
{
case A = 0x00
case B = 0x01
case C = 0x10
}
我使用以下代码将其转换为NSData
:
var value = Enum.C
let data = NSData(bytes: &value, length: 1)
自然而然,我期望
data
包含 0x10
,但是它包含了 0x02
。对于
Enum.A
它包含 0x00
,对于Enum.B
它包含 0x01
。在我看来,它似乎存储的是值的索引而不是实际的原始数据。有谁能解释这种行为吗?
顺便说一下,如果我使用
rawValue
,它可以完美地工作。然而,由于这个原因,我不能创建一个通用的函数将值转换为NSData,并且我想理解其背后的原因。
sizeof
而不是1
)。因此,这意味着保存的唯一内容是订单号。 - Werolik