东莞网站关键字,商业网站如何备案,产品推广软文300字,企业网站建设的基本标准是在看SDWebImage图片加载库的时候#xff0c;看到了一个位运算的高级使用#xff0c;之前对位运算深入了解只是在datalab中#xff0c;但也只是处于“学会”的阶段#xff0c;本篇介绍位运算在实践中管理状态的使用#xff0c;希望能打开你的思路#xff0c;对你有所帮助 …在看SDWebImage图片加载库的时候看到了一个位运算的高级使用之前对位运算深入了解只是在datalab中但也只是处于“学会”的阶段本篇介绍位运算在实践中管理状态的使用希望能打开你的思路对你有所帮助
SDWebImage运用option与状态进行位运算处理这里我们仍使用option
初始化状态标志
typedef NS_OPTIONS(NSUInteger, SDWebImageOptions) {SDWebImageRetryFailed 1 0,SDWebImageLowPriority 1 1,SDWebImageCacheMemoryOnly 1 2,SDWebImageProgressiveDownload 1 3,SDWebImageRefreshCached 1 4,SDWebImageContinueInBackground 1 5,//后面还有很多这里省略
};设置状态标志
这里先将option置为0
使用或运算设置option的值
option 0;option option SDWebImageRetryFailedoption option SDWebImageLowPriority此时option处于SDWebImageRetryFailed和SDWebImageLowPriority状态
也就是option的值为 00 0011
检查状态
判断option是否处于xx状态时用与运算
if (options SDWebImageLowPriority) {//执行一些操作
}
if (options SDWebImageContinueInBackground) {//执行一些操作
}由于option的值为 00 0011所以只会走第一个if不会走第二个if
清除状态
option option ~SDWebImageRetryFailed此时option的值为 00 0010清除了SDWebImageRetryFailed状态
总结
用法比较简单但这个方法我觉得很厉害思想真的值得学习