将所有NSStrings与Core Data进行比较

时间:2012-10-13 13:27:37

标签: objective-c xcode cocoa-touch core-data nsstring

在我的应用中,类别和类别是包含信息的单元格。用户可以添加类别,并且在类别中,用户可以添加具有信息的单元格。 您可以使用UISwitchNSString设置为@"ON"@"OFF"的信息更改单元格的样式,并使用if语句检查NSString是否为等于@"ON"@"OFF"。这一切都保存在核心数据中 现在我想要所有时,具有特定类别信息的单元格具有类别单元格样式发生变化的NSString @"ON"。 我可以改变风格,但如果所有 NSString s等于@"ON",我就不知道如何比较。

任何人都可以帮助我吗?

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

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

1 个答案:

答案 0 :(得分:1)

如果cat类别对象,cells是从类别单元格的多对多关系,然后你可以使用

获取{don} == ON“cat的所有单元格
NSPredicate *onPredicate = [NSPredicate predicateWithFormat:@"doneinfo = 'ON'"];
NSSet *onCells = [cat.cells filteredSetUsingPredicate:onPredicate];

您可以使用

测试此cat对象的所有单元格是否为“ON”
[cat.cells count] == [onCells count];

另一种选择是计算

NSSet *onOff = [cat.cells valueForKey:@"doneinfo"];
  • 如果cat的所有单元格都为“ON”,则会为一组提供正好1个元素“ON”。
  • 如果cat的所有单元格都为“OFF”,则会给出一组恰好有1个元素“OFF”。
  • 如果某些单元格为“ON”且某些单元格为“OFF”,则会给出一个包含2个元素的单元格。