나는 다음 열거 한 : 나는 NSData
로 변환하려면 다음 코드를 사용신속한 enum 바이트 표현이란 무엇입니까?
enum Enum: UInt8
{
case A = 0x00
case B = 0x01
case C = 0x10
}
: 나는 0x10
은, 그러나, 그것은 0x02
이 포함되어 포함 data
을
var value = Enum.C
let data = NSData(bytes: &value, length: 1)
를 당연히 기대.
Enum.A
의 경우 0x00
을 포함하고 Enum.B
의 경우 0x01
을 포함합니다.
내게는 실제 원시 데이터 대신 값의 인덱스를 저장하는 것처럼 보입니다. 누군가이 행동을 설명 할 수 있을까요?
P. rawValue
을 사용하면 완벽하게 작동합니다. 그러나 그것 때문에 NSData 값을 변환하는 제네릭 함수를 만들 수 없기 때문에 뒤에 이유를 이해하고 싶습니다.
를 정확히 ** 1 ** (I는'대신 sizeof' 사용'1') . 따라서 저장된 유일한 것은 주문 번호입니다. – Werolik