枚举中写法:
typedef NS_OPTIONS(NSUInteger, SDWebImageOptions) {
SDWebImageRetryFailed = 1 << 0,
SDWebImageLowPriority = 1 << 1,
SDWebImageCacheMemoryOnly = 1 << 2,
ageProgressiveDownload = 1 << 3,
SDWebImageRefreshCached = 1 << 4,
};
其中“<< N”是向左移N位的意思,下面这张图可以很好的诠释:
比如SDWebImageRetryFailed | SDWebImageLowPriority就是 01 | 10, 即11 。
使用:
SDWebImageOptions option = SDWebImageRetryFailed | SDWebImageLowPriority;
//检查是否包含某选项
if (option & SDWebImageRetryFailed) {//0011 & 0001 = 0001
//包含SDWebImageRetryFailed
}else{
//不包含SDWebImageRetryFailed
}
//增加选项
option = option | SDWebImageCacheMemoryOnly;//0011 | 0100 = 0111
//减少选项
option = option & (~SDWebImageCacheMemoryOnly);//0111 & (~0100) = 0111 & 1011 = 0011