0
我試圖在Objective-C中做一個1位的實例字段,但是當我嘗試這樣做時@property BYTE Z : 1;
我得到一個錯誤,說Property name cannot be a bitfield
。實例變量和位字段
我不能這樣做?有沒有解決這個錯誤?
由於
我試圖在Objective-C中做一個1位的實例字段,但是當我嘗試這樣做時@property BYTE Z : 1;
我得到一個錯誤,說Property name cannot be a bitfield
。實例變量和位字段
我不能這樣做?有沒有解決這個錯誤?
由於
存儲器的最小可分配單位是1個字節的最器材。不分配1個比特的方式,也可能是不mappable.It必須包含所有ASCII字符。
所以只需使用一個字節,然後讀取位掩碼。
使用類似:
@property (nonatomic) Byte byte;
然後使用宏閱讀:
#define BitAtIndex(byte,index) (byte & (1<<index))!=0
PS:當然,指數不能大於7
我檢查什麼在Objective-C中可用的數據類型,我雖然爲什麼不使用BOOL 1位整數,是一個好主意嗎? –
是的,你可以使用它。BOOL通常使用1字節的內存,但我不認爲你需要節省內存這麼多。你也可以避免讀取位掩碼。除非你有很多BOOL並害怕耗盡記憶。 –