NSPredicate返回包含数组中属性的Items

时间:2016-04-13 14:54:38

标签: core-data

我有一系列年/月元组:

$routeProvider

在我的CoreData ManagedObjectModel中,我有一个具有[(2015, 11), (2015, 12), (2016, 1), (2016, 2), (2016, 3), (2016, 4), (2016, 5), (2016, 6), (2016, 7), (2016, 8), (2016, 9)]year属性(Int16)的MonthlyReport实体

我试图找出一种有效的方法来获取所有年份和月份属性与数组中的元组匹配的模型。

我尝试了以下内容(使用monthuniqueYears个唯一值数组):

uniqueMonths

但这不起作用;应用程序崩溃并显示消息let predicateYear = NSPredicate(format: "$name in $NAME_LIST", "year", uniqueYears) let predicateMonths = NSPredicate(format: "$name in $NAME_LIST", "month", uniqueMonths) let fetchRequest = NSFetchRequest(entityName: "EntityName") fetchRequest.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [predicateYear, predicateMonths])

现在,我一直坚持取出然后手动过滤所有模型,这远远没有效率。

任何建议或指示都将不胜感激

1 个答案:

答案 0 :(得分:2)

没有一种简单的方法可以做到这一点。您需要构建一个相当复杂的谓词来查找组合。像这样:

setInterval(function(){
   timer();
  },1000)

我怀疑这将是一个昂贵的SQL查询。