2012-12-12 68 views
0

我試圖在Objective-C中做一個1位的實例字段,但是當我嘗試這樣做時@property BYTE Z : 1;我得到一個錯誤,說Property name cannot be a bitfield實例變量和位字段

我不能這樣做?有沒有解決這個錯誤?

由於

回答

0

存儲器的最小可分配單位是1個字節的最器材。不分配1個比特的方式,也可能是不mappable.It必須包含所有ASCII字符。
所以只需使用一個字節,然後讀取位掩碼。

使用類似:

@property (nonatomic) Byte byte; 

然後使用宏閱讀:

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

PS:當然,指數不能大於7

+0

我檢查什麼在Objective-C中可用的數據類型,我雖然爲什麼不使用BOOL 1位整數,是一個好主意嗎? –

+1

是的,你可以使用它。BOOL通常使用1字節的內存,但我不認爲你需要節省內存這麼多。你也可以避免讀取位掩碼。除非你有很多BOOL並害怕耗盡記憶。 –