我创建了一个汽车核心数据模型,我想选择一种车型加上几种不同颜色中的任何一种。这是我设想的做法:
选择 View Controller
1) 选择汽车类型(轿车、轿跑车、SUV、混合动力车)(我设想一个分段控件将此设置为谓词)
2) 选择车辆类型后,我想从颜色列表中选择,仅显示满足我在第一步中选择的车辆类型的汽车。例如,我想只显示(红色、绿色和蓝色)SUV 或黑色和白色的混合动力车。
结果 TableView Controller
3) 一旦选择了这些,我想将它们转储到另一个 TVC 上。
这篇文章有点帮助,但提出问题的人试图找到不同的项目(例如:A、B 和 C)。我试图在 A 中找到 X、Y 和 Z。 Can I apply multiple predicates to an NSFetchRequest? Would it be better to manually parse my results?
当我尝试检索一种类型的车辆以及所选颜色的列表时遇到了麻烦
let vehiclePredicate = NSPredicate(format: "type == %@", "(one of sedan/coupe/SUV/hybrid)")
以及以下任何条件
let colorRedPredicate = NSPredicate(format: "color == %@", "red")
let colorGreenPredicate = NSPredicate(format: "color == %@", "green")
let colorBluePredicate = NSPredicate(format: "color == %@", "red")
let colorBlackPredicate = NSPredicate(format: "color == %@", "black")
let colorWhitePredicate = NSPredicate(format: "color == %@", "white")
let colorPredicates: NSArray = [**add colors here when they're selected**]
我正在尝试找出最简洁的方法来执行此操作,但我发现的示例仅检索不同的项目。
我遇到的另一个障碍是如何将结果从我的 SelectionVC 获取到 ResultTVC。我知道我需要一名代表,但我需要什么?对此的任何帮助将不胜感激。
最佳答案
你想以这样的谓词结束:
type == %@ AND color IN %@
然后以字符串形式提供您的类型,以集合形式提供颜色。您可以使用从其他 2 个创建的复合谓词来执行此操作,或者只需更改您的 UI 选择的含义并生成两个参数作为分割名称和一组颜色。
如果你想组合双簧管的多个选项,那么你需要创建每个选项,然后使用复合谓词将它们组合起来。
关于core-data - 使用谓词在结果中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27806103/