bool、BOOL、Boolean......

本文探讨OC中BOOL、bool及其相关类型的差异。BOOL在OC中广泛使用,其值非0即为YES。bool变量值大于0为true。boolean_t、Boolean虽非0表示逻辑为真,但不等同于true/YES,常用于条件判断。

前言

平时我们用的OC中的布尔类型和在框架中见到的一般都是BOOL,在我们敲出BOOL的过程中,会发现它其实有几个“兄弟姐妹”,很遗憾的是我们没怎么去深究它,特别是对于像我这样入行时间短的人,通常的思想就是我会常用的BOOL就行了,而实际上这可能就是别人能进大公司而你就只能去某“旮旯”里的重要原因。

概览

Name Typedef Header True Value
BOOL signed char objc/objc.h YES
bool _Bool(int) stdbool.h true
Boolean unsigned char MacTypes.h \
boolean_t unsigned int boolean.h \
NSNumber __NSCFBoolean Foundation.h @(YES)
CFBooleanRef struct pointer CoreFoundation/CFNumber.h kCFBoole
package com.ruoyi.system.domain.plc.bo; import com.github.xingshuangs.iot.common.enums.EDataType; import com.github.xingshuangs.iot.protocol.s7.serializer.S7Variable; import com.ruoyi.common.note.FieldComment; import lombok.Data; /** * @author XJL * @version 2025/6/11 下午3:29 * 加药设备 */ @Data public class DosingEquipmentPlc { //当前值 /** 脱脂游离碱 */ @FieldComment("脱脂游离碱") @S7Variable(address = "DB9.0", type = EDataType.FLOAT32) private Float preDeFreeBase; /** 纯水1PH */ @FieldComment("纯水1PH") @S7Variable(address = "DB9.4", type = EDataType.FLOAT32) private Float preDeTotalBase; /** 纯水1电导率 */ @FieldComment("纯水1电导率") @S7Variable(address = "DB9.8", type = EDataType.FLOAT32) private Float mainDeFreeBase; /** 锆点 */ @FieldComment("锆点") @S7Variable(address = "DB9.12", type = EDataType.FLOAT32) private Float mainTotalDebase; /** 薄膜PH */ @FieldComment("薄膜PH") @S7Variable(address = "DB9.16", type = EDataType.FLOAT32) private Float potteryPH; /** 薄膜氟离子 */ @FieldComment("薄膜氟离子") @S7Variable(address = "DB9.20", type = EDataType.FLOAT32) private Float thinFilmFluorideIons; /** 纯水2PH */ @FieldComment("纯水2PH") @S7Variable(address = "DB9.24", type = EDataType.FLOAT32) private Float water2PH; /** 纯水2电导率 */ @FieldComment("纯水2电导率") @S7Variable(address = "DB9.28", type = EDataType.FLOAT32) private Float water2ElectricalConductivity; //每次加药泵加药量 /** 脱脂剂泵 */ @FieldComment("脱脂剂泵") @S7Variable(address = "DB9.64", type = EDataType.FLOAT32) private Float preDeGreasingPump; /** 表活剂泵 */ @FieldComment("表活剂泵") @S7Variable(address = "DB9.68", type = EDataType.FLOAT32) private Float preTableLivePump; /** 薄膜剂泵 */ @FieldComment("薄膜剂泵") @S7Variable(address = "DB9.72", type = EDataType.FLOAT32) private Float mainDeGreasingPump; /** 薄膜助剂泵 */ @FieldComment("薄膜助剂泵") @S7Variable(address = "DB9.76", type = EDataType.FLOAT32) private Float mainTableLivePump; // /** 陶化A剂泵 */ // @S7Variable(address = "DB9.80", type = EDataType.FLOAT32) // private Float ceramicAAgentPump; // /** 陶化B剂泵 */ // @S7Variable(address = "DB9.84", type = EDataType.FLOAT32) // private Float ceramicBAgentPump; //日加药统计量 /** 日加药统计量-脱脂剂泵 */ @FieldComment("日加药统计量-脱脂剂泵") @S7Variable(address = "DB9.128", type = EDataType.FLOAT32) private Float preDeGreasingPump02; /** 日加药统计量-表活剂泵 */ @FieldComment("日加药统计量-表活剂泵") @S7Variable(address = "DB9.132", type = EDataType.FLOAT32) private Float preTableLivePump02; /** 日加药统计量-薄膜剂泵 */ @FieldComment("日加药统计量-薄膜剂泵") @S7Variable(address = "DB9.136", type = EDataType.FLOAT32) private Float mainDeGreasingPump02; /** 日加药统计量-薄膜助剂泵 */ @FieldComment("日加药统计量-薄膜助剂泵") @S7Variable(address = "DB9.140", type = EDataType.FLOAT32) private Float mainTableLivePump02; // /** 日加药统计量 陶化A剂泵 */ // @S7Variable(address = "DB9.144", type = EDataType.FLOAT32) // private Float ceramicAAgentPump02; // /** 日加药统计量 陶化B剂泵 */ // @S7Variable(address = "DB9.148", type = EDataType.FLOAT32) // private Float ceramicBAgentPump02; // 当前值新数据标位 /** 当前值新数据标位-脱脂游离碱 */ @S7Variable(address = "DB9.192.0", type = EDataType.BOOL) private Boolean preDeFreeBasesSign; /** 当前值新数据标位-纯水1PH */ @S7Variable(address = "DB9.192.1", type = EDataType.BOOL) private Boolean PreDeTotalBaseSign; /** 当前值新数据标位-纯水1电导率 */ @S7Variable(address = "DB9.192.2", type = EDataType.BOOL) private Boolean mainDeFreeBaseSign; /** 当前值新数据标位-锆点 */ @S7Variable(address = "DB9.192.3", type = EDataType.BOOL) private Boolean mainTotalDebaseSign; /** 当前值新数据标位-薄膜PH */ @S7Variable(address = "DB9.192.4", type = EDataType.BOOL) private Boolean potteryPHSign; /** 当前值新数据标位-薄膜氟离子 */ @S7Variable(address = "DB9.192.5", type = EDataType.BOOL) private Float thinFilmFluorideIonsSign; /** 当前值新数据标位-纯水2PH */ @S7Variable(address = "DB9.192.6", type = EDataType.BOOL) private Float water2PHSign; /** 当前值新数据标位-纯水2电导率 */ @S7Variable(address = "DB9.192.7", type = EDataType.BOOL) private Float water2ElectricalConductivitySign; //报警信息 /** 脱脂游离碱超上限报警 */ @S7Variable(address = "DB9.194.0", type = EDataType.BOOL) private Boolean detFreeAlkHighAlarm; /** 脱脂游离碱超下限报警 */ @S7Variable(address = "DB9.194.1", type = EDataType.BOOL) private Boolean detFreeAlkLowAlarm; /** 锆点超上限报警 */ @S7Variable(address = "DB9.194.2", type = EDataType.BOOL) private Boolean zirconHighAlarm; /** 锆点超下限报警 */ @S7Variable(address = "DB9.194.3", type = EDataType.BOOL) private Boolean zirconLowAlarm; /** 脱脂剂泵日加药量超限报警 */ @S7Variable(address = "DB9.194.6", type = EDataType.BOOL) private Boolean detPumpDailyDoseAlarm; /** 表活剂泵日加药量超限报警 */ @S7Variable(address = "DB9.194.7", type = EDataType.BOOL) private Boolean surfactantPumpDailyDoseAlarm; /** 报警数据标志位(薄膜剂泵日加药量超限报警 */ @S7Variable(address = "DB9.194.8", type = EDataType.BOOL) private Boolean filmPumpDailyDoseAlarm; /** 薄膜助剂泵日加药量超限报警 */ @S7Variable(address = "DB9.194.9", type = EDataType.BOOL) private Boolean filmAdditivePumpDailyDoseAlarm; //加药泵加药量新数据标位 /** 加药泵加药量新数据标位-脱脂剂泵 */ @S7Variable(address = "DB9.196.0", type = EDataType.BOOL) private Boolean preDeGreasingPumpSign; /** 加药泵加药量新数据标位-表活剂泵 */ @S7Variable(address = "DB9.196.1", type = EDataType.BOOL) private Boolean preTableLivePumpSign; /** 加药泵加药量新数据标位-薄膜剂泵 */ @S7Variable(address = "DB9.196.2", type = EDataType.BOOL) private Boolean mainDeGreasingPumpSign; /** 加药泵加药量新数据标位-薄膜助剂泵 */ @S7Variable(address = "DB9.196.3", type = EDataType.BOOL) private Boolean mainTableLivePumpSign; // /** 加药泵加药量新数据标位-陶化A剂泵 */ // @S7Variable(address = "DB9.196.4", type = EDataType.BOOL) // private Boolean ceramicAAgentPumpSign; // /** 加药泵加药量新数据标位 陶化B剂泵 */ // @S7Variable(address = "DB9.196.5", type = EDataType.BOOL) // private Boolean ceramicBAgentPumpSign; //日加药量数据标志位 /** 日加药量数据标志位-脱脂剂泵 */ @S7Variable(address = "DB9.198.0", type = EDataType.BOOL) private Boolean preDeGreasingPump2Sign; /** 日加药量数据标志位-表活剂泵 */ @S7Variable(address = "DB9.198.1", type = EDataType.BOOL) private Boolean preTableLivePump2Sign; /** 日加药量数据标志位-薄膜剂泵 */ @S7Variable(address = "DB9.198.2", type = EDataType.BOOL) private Boolean mainDeGreasingPump2Sign; /** 日加药量数据标志位-薄膜助剂泵 */ @S7Variable(address = "DB9.198.3", type = EDataType.BOOL) private Boolean mainTableLivePump2Sign; // /** 日加药量数据标志位 陶化A剂泵 */ // @S7Variable(address = "DB9.198.4", type = EDataType.BOOL) // private Boolean ceramicAAgentPump2Sign; // /** 日加药量数据标志位 陶化B剂泵 */ // @S7Variable(address = "DB9.198.5", type = EDataType.BOOL) // private Boolean ceramicBAgentPump2Sign; //泵运行状态 /** 脱脂剂泵运行状态 */ @S7Variable(address = "Q0.0", type = EDataType.BOOL) private Boolean pumpDetRunning; /** 表活剂泵运行状态 */ @S7Variable(address = "Q0.1", type = EDataType.BOOL) private Boolean pumpSurfactantRunning; /** 薄膜剂泵运行状态 */ @S7Variable(address = "Q0.2", type = EDataType.BOOL) private Boolean pumpFilmRunning; /** 薄膜助剂泵运行状态 */ @S7Variable(address = "Q0.3", type = EDataType.BOOL) private Boolean pumpFilmAdditiveRunning; /** 系统运行灯 */ @S7Variable(address = "Q0.6", type = EDataType.BOOL) private Boolean runningLight; /** 系统停止灯 */ @S7Variable(address = "Q0.7", type = EDataType.BOOL) private Boolean stopLight; /** 系统故障灯 */ @S7Variable(address = "Q1.0", type = EDataType.BOOL) private Boolean faultLight; } 帮我检查一下这个有问题吗
最新发布
08-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值