实例变量和位域

时间:2012-12-12 15:08:38

标签: objective-c instance bit bit-fields ivar

我试图在Objective-C中执行1位的实例字段,但是当我尝试这个@property BYTE Z : 1;时,我收到错误Property name cannot be a bitfield

我不能这样做?这个错误有解决方法吗?

由于

1 个答案:

答案 0 :(得分:0)

最小的可分配内存单位是大多数机器的1字节。没有办法分配1位,它可能不是可映射的。它必须包含所有ASCII字符。
所以只需使用字节然后读取位掩码。

使用类似:

@property (nonatomic) Byte byte;

然后使用宏来阅读:

#define BitAtIndex(byte,index) (byte & (1<<index))!=0

PS:当然指数不能大于7.