【问题标题】:Dynamic NSCombobox动态 NSCombobox
【发布时间】:2012-11-26 09:02:43
【问题描述】:
我正在创建一个应用程序,其中有多个实体,现在我需要动态过滤第三个组合框的内容。我更好地解释自己。我有 3 个组合框(建筑物、楼层和部门),我想首先显示包含的所有建筑物,但第二个应该只显示在建筑物计划之前选择的,最后一个我应该只选择建筑物的部门以及您选择的计划。我怎样才能做到这一点?为了简化附加一些照片。
【问题讨论】:
标签:
xcode
core-data
cocoa-bindings
nsarraycontroller
nscombobox
【解决方案1】:
如果您对 Core Data 使用单个 fetch 请求,您只需使用谓词向下钻取。
但是,您的关系设置不正确。例如,Particelle 中有一个edificio 属性。如果它指的是一座建筑物,它应该是与Edifici 对象的关系,而不是某种外键。 Core Data 中没有外键,只有关系。
如果您这样做,使用NSFetchedResultsController 会变得更容易。您现在可以简单地遍历对象图而无需任何特定的获取。
方案可能是这样的(可能需要更改顺序):
Anno <--->> Particella <---->> Edificio <---->> AreaRischio
现在您可以简单地告诉 fetched results 控制器开始获取所有 Anno 实体。然后你用简单的点符号向下钻取:
NSSet *listForNextTable = selectedAnnoObject.particelle;
还有
NSSet *listForNextTable = selectedParticellaObject.edifici;
等等。你看,它变得非常简单。