Rit*_*its 14 iphone cocoa-touch bit-manipulation objective-c ios
我今天读到了关于按位运算符的内容,它们对我来说似乎很方便.我也注意到Apple也使用它们,例如UIViewAutoresizing.
在我的应用程序中,我需要跟踪一周中的七天.每天都可以启用或禁用.我曾经有七个BOOL,但现在我正在尝试使用一个整数:
enum {
DaysMonday = 1 << 0,
DaysTuesday = 1 << 1,
DaysWednesday = 1 << 2,
DaysThursday = 1 << 3,
DaysFriday = 1 << 4,
DaysSaturday = 1 << 5,
DaysSunday = 1 << 6
};
typedef NSUInteger Days;
Run Code Online (Sandbox Code Playgroud)
我的问题是,我现在如何启用/禁用这些值?我知道我可以检查days特定日期的变量,如下所示:
if (days & DaysThursday) {
// thursday enabled
}
Run Code Online (Sandbox Code Playgroud)
但我怎么..
谢谢.
Jon*_*der 26
我对objective-c不太熟悉,但这里是处理按位运算符时的基础知识.
启用星期四
days = days | DaysThursday;
Run Code Online (Sandbox Code Playgroud)
禁用星期四
allDays = DaysMonday | DaysTuesday | ... | DaysSunday;
days = days & (allDays ^ DaysThursday);
// OR
days = days & ~DaysThursday;
Run Code Online (Sandbox Code Playgroud)
周四切换
days = days ^ DaysThursday;
Run Code Online (Sandbox Code Playgroud)
全部启用
allDays = DaysMonday | DaysTuesday | ... | DaysSunday;
days = days | allDays;
// OR
days = allDays;
Run Code Online (Sandbox Code Playgroud)
禁用所有
days = days ^ days;
// OR
days = 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4100 次 |
| 最近记录: |