按位与或取反(|&~)在项目中的运用

  • (KKUserInfoShowMask)getUserInfoShowMaskWithIndexpath:(NSIndexPath *)indexPath andSwitchOn:(BOOL)isOn {
    NSString *title = self.sectionDatas[indexPath.section][indexPath.row];
    KKUserInfoShowMask mask;
    if ([title isEqualToString:KKLocalized(@"kPhone")]) {
    mask = KKUserInfoShowMaskMobile;
    } else if ([title isEqualToString:KKLocalized(@"kTel")]) {
    mask = KKUserInfoShowMaskTel;
    }else if ([title isEqualToString:KKLocalized(@"kPosition")]) {
    mask = KKUserInfoShowMaskPost;
    } else if ([title isEqualToString:KKLocalized(@"kEMail")]) {
    mask = KKUserInfoShowMaskEmail;
    } else if ([title isEqualToString:KKLocalized(@"kAddress")]) {
    mask = KKUserInfoShowMaskAddr;
    } else if ([title isEqualToString:KKLocalized(@"kJobNumber")]) {
    mask = KKUserInfoShowMaskStaffId;
    } else {
    mask = KKUserInfoShowMaskNone;
    }
    //当开启该位时 按位或
    //当关闭该位时,先按位取反,再按位与
    if (isOn) {
    return (self.userInfo.showMask | mask);
    } else {
    return self.userInfo.showMask & (~mask);
    }
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容