-1

在我的应用程序中是类别,类别中是包含信息的单元格。用户可以添加一个类别,并且在一个类别中用户可以添加一个带有信息的单元格。UISwitch您可以使用将 a设置NSString@"ON"or的信息更改单元格的样式,@"OFF"并使用 if 语句检查 NSString 是否等于@"ON"or @"OFF"。这一切都保存在 Core Data 中。
现在,我希望当所有具有特定类别信息的单元格的类别单元格NSString @"ON"的样式发生变化时。我可以更改样式,但是如果所有NSStrings 都等于 ,我不知道如何进行比较@"ON"

谁能帮我?

编辑:
我使用两个实体(一个用于类别,一个用于包含信息的单元格)。在类别的实体中是一个带有名称的属性,donelist类型是一个字符串。在信息的实体中是一个带有名称的属性,doneinfo类型也是一个字符串。

如果类别中的所有信息都设置为 ,则目标是更改样式 (dequeueReusableCellWithIdentifier) @"ON"。我的意思是改变颜色的风格。我已经用标识符做到了这一点,但这不是大问题。问题是我不知道如何检查一个类别中的所有信息是否都已完成(NSString 设置为@"ON")。

4

1 回答 1

1

如果catCategory对象并且是从CategoryCellcells的一对多关系,那么您可以使用“doninfo == ON”获取所有单元格cat

NSPredicate *onPredicate = [NSPredicate predicateWithFormat:@"doneinfo = 'ON'"];
NSSet *onCells = [cat.cells filteredSetUsingPredicate:onPredicate];

并且您可以测试该cat对象的所有单元格是否都“打开”

[cat.cells count] == [onCells count];

另一种选择是计算

NSSet *onOff = [cat.cells valueForKey:@"doneinfo"];
  • 如果 的所有单元格cat都是“ON”,则这给出了一个恰好有 1 个元素“ON”的集合。
  • 如果 的所有单元格cat都是“OFF”,则这给出了一个恰好有 1 个元素“OFF”的集合。
  • 如果一些单元格是“ON”而一些是“OFF”,这会给出一个包含 2 个元素的集合。
于 2012-10-13T22:08:13.800 回答