当前位置: 首页 > news >正文

用幽默的语言来形容网站开发代写文章质量高的平台

用幽默的语言来形容网站开发,代写文章质量高的平台,好用的代码网站,外汇局网站预收货款报告怎么做一、场景 当我们使用枚举这个东西时,有时需要多个枚举值任一一个满足时就ture,但是常用的枚举NS_ENUM定义好的枚举只能挨个判断,写一坨就既不美观也不好阅读,如下: typedef NS_ENUM (NSInteger, RPTestType){RPTestT…

一、场景

当我们使用枚举这个东西时,有时需要多个枚举值任一一个满足时就ture,但是常用的枚举NS_ENUM定义好的枚举只能挨个判断,写一坨就既不美观也不好阅读,如下:

typedef NS_ENUM (NSInteger, RPTestType){RPTestTypeUnknown = 0, // unknowRPTestTypeValue0,      // 值0RPTestTypeValue1,      // 值1RPTestTypeValue2,      // 值2RPTestTypeValue3,      // 值3RPTestTypeValue4,      // 值4RPTestTypeValue5,      // 值5
};RPTestType testTeype = RPTestTypeUnknown;
if (testTeype == RPTestTypeValue0 ||testTeype == RPTestTypeValue1 || testTeype == RPTestTypeValue2 || testTeype == RPTestTypeValue3 || testTeype == RPTestTypeValue4 || testTeype == RPTestTypeValue5) {NSLog(@"ture");
}

二、利用NS_OPTIONS优化

1、先了解一个关于位运算符的知识点:位运算符浅析

这里用到(左移 << )和 (按位与 & )和(按位或 | )这仨,先明确是怎么个事;

2、先看下NS_OPTIONS如何来定义枚举
typedef NS_OPTIONS (NSInteger, RPTestType){RPTestTypeUnknown = 1 << 0, // unknowRPTestTypeValue0  = 1 << 1, // 值0RPTestTypeValue1  = 1 << 2, // 值1RPTestTypeValue2  = 1 << 3, // 值2RPTestTypeValue3  = 1 << 4, // 值3RPTestTypeValue4  = 1 << 5, // 值4RPTestTypeValue5  = 1 << 6, // 值5
};

这里使用左移定义枚举值,结合位运算可以这么看:
1 << 0 就是 0001,即2的0次方;
1 << 1 就是 0010,即2的1次方;
1 << 2 就是 0100,即2的2次方;
以此类推~

3、再看这么用的好处

当有多个枚举值都符合时做判断时候,可以直接(或 | )起来,然后(与 & )一下子,就能清晰明了的做判断;

RPTestType testType = RPTestTypeUnknown;
RPTestType judgeType = RPTestTypeValue0 | RPTestTypeValue1 | RPTestTypeValue2 | RPTestTypeValue3 | RPTestTypeValue4 | RPTestTypeValue5;
if (testType & judgeType) {NSLog(@"ture");
}

当然最好使的用处是枚举值传参,如SDImage

[self.testImgView sd_setImageWithURL:[NSURL URLWithString:@"xx"]placeholderImage:niloptions:SDWebImageLowPriority | SDWebImageProgressiveLoad |SDWebImageRefreshCached |SDWebImageContinueInBackground];

options这里可以直接传入多个枚举值,可用于方法内部与或运算进行判断,方便传值;类似的还有UIControlState;

typedef NS_OPTIONS(NSUInteger, UIControlState) {UIControlStateNormal       = 0,UIControlStateHighlighted  = 1 << 0,                  // used when UIControl isHighlighted is setUIControlStateDisabled     = 1 << 1,UIControlStateSelected     = 1 << 2,                  // flag usable by app (see below)UIControlStateFocused API_AVAILABLE(ios(9.0)) = 1 << 3, // Applicable only when the screen supports focusUIControlStateApplication  = 0x00FF0000,              // additional flags available for application useUIControlStateReserved     = 0xFF000000               // flags reserved for internal framework use
};
[testBtn setTitle:@"xx"forState:UIControlStateNormal | UIControlStateHighlighted | UIControlStateSelected];
http://www.zhongyajixie.com/news/13591.html

相关文章:

  • 企业展示型电商网站模板百度号码认证申诉平台
  • 营销单页网站制作阿里云空间+1对1私人专属设计师
  • 网站建设方案平台架构网络营销的特点和优势
  • 高性能网站建设进行指南网站推广的100种方法
  • 网站添加广告源码百度人工电话多少号
  • 网站开发公司+重庆网站提交百度收录
  • 如何在jsp上做网站页面百度百科优化
  • 想自己搭建网站得怎么做苏州推广排名
  • 天津网站建设优选企业关键词优化工具有哪些
  • 做学校和企业对接的网站最快的新闻发布平台
  • 哪些网站图片做海报好网站如何才能被百度收录
  • 做网站放到百度上需要什么网站查询信息
  • 怎么做网站架构图杭州seo推广排名稳定
  • 电影网站开发api微信小程序建站
  • 漫画门户网站怎么做的ks刷粉网站推广马上刷
  • 铜陵网站优化百度提交收录
  • 大学生作业代做网站西安seo关键词推广
  • 网站开通支付宝收款附近的电脑培训班在哪里
  • 做yahoo代拍网站公司指数工具
  • 速成建站合肥优化推广公司
  • 重庆网站建设开发公司怎么建网站教程
  • 外贸做网站微信搜一搜排名优化
  • 网上客服同仁seo排名优化培训
  • iis 网站压缩怎么学互联网怎么赚钱
  • 校园推广是什么工作aso优化方法
  • mc做图的网站最好的免费推广平台
  • 在线买房网站建设 方案海外免费网站推广
  • 个人微信crmseo教程书籍
  • 网站设计 北京 010短视频seo询盘系统
  • 三个律师做网站合适吗线上营销推广方式都有哪些