Ios coreData数组中的真布尔值求和
下面的代码从核心数据填充我的表视图值单元格。显示otsBranch和日期值。我试图找出如何计算记录的真布尔值的数量,并在表格单元格中显示该数量。let arr=ots函数是我的尝试。但它给了我一个错误“类型OTSProcessConfirmation不符合协议序列” //coredata中的属性具有布尔值,我希望将其计数为trueIos coreData数组中的真布尔值求和,ios,swift,core-data,Ios,Swift,Core Data,下面的代码从核心数据填充我的表视图值单元格。显示otsBranch和日期值。我试图找出如何计算记录的真布尔值的数量,并在表格单元格中显示该数量。let arr=ots函数是我的尝试。但它给了我一个错误“类型OTSProcessConfirmation不符合协议序列” //coredata中的属性具有布尔值,我希望将其计数为true ots.otsQ1 ots.otsQ2 ots.otsQ3 ots.otsQ4
ots.otsQ1
ots.otsQ2
ots.otsQ3
ots.otsQ4
ots.otsQ5
ots.otsQ6
ots.otsQ7
ots.otsQ8
ots.otsQ9
ots.otsQ10
ots.otsQ11
ots.otsQ12
ots.otsQ13
ots.otsQ14
这很尴尬,因为您的对象没有要处理的值数组,只有几个名称类似的属性。我认为最简单的解决方案是在代码中构建一个数组,然后处理:
let array = [ots.otsQ1, ots.otsQ2, ots.otsQ3, ots.otsQ4,
ots.otsQ5, ots.otsQ6, ots.otsQ7, ots.otsQ8,
ots.otsQ9, ots.otsQ10, ots.otsQ11, ots.otsQ12,
ots.otsQ13, ots.otsQ14]
let trueCounter = arr.reduce(0) { $0 + ($1 ? 1 : 0) }
这意味着,如果您添加另一个布尔值,
otsQ15
,您必须记住将其添加到数组中。这很尴尬,因为您的对象没有要处理的值数组,只有几个类似命名的属性。我认为最简单的解决方案是在代码中构建一个数组,然后处理:
let array = [ots.otsQ1, ots.otsQ2, ots.otsQ3, ots.otsQ4,
ots.otsQ5, ots.otsQ6, ots.otsQ7, ots.otsQ8,
ots.otsQ9, ots.otsQ10, ots.otsQ11, ots.otsQ12,
ots.otsQ13, ots.otsQ14]
let trueCounter = arr.reduce(0) { $0 + ($1 ? 1 : 0) }
这意味着如果添加另一个布尔值,
otsQ15
,则必须记住将其添加到数组中。哪些布尔值?ots
是否有二进制值的集合?我在第一篇文章中添加了更多内容,其中显示了我想要通过计数来获得真实值的coredata属性。如果我理解正确,ots将保存core data中记录的所有值。“var OTSProcess确认:OTSProcess确认?”。OTSProcessConfiguration是实体的名称。让ots=otsProcessConfirmation值由otsProcessConfirmationSo设置,以便澄清,对于每个ots,您需要otsQ1、otsQ2、。。。otsQ14?没错。我想计算每个otsQ1的真实值。。。OTSQ14哪些布尔值?ots
是否有二进制值的集合?我在第一篇文章中添加了更多内容,其中显示了我想要通过计数来获得真实值的coredata属性。如果我理解正确,ots将保存core data中记录的所有值。“var OTSProcess确认:OTSProcess确认?”。OTSProcessConfiguration是实体的名称。让ots=otsProcessConfirmation值由otsProcessConfirmationSo设置,以便澄清,对于每个ots,您需要otsQ1、otsQ2、。。。otsQ14?没错。我想计算每个otsQ1的真实值。。。otsQ14