我有一份食谱的 CKRecord。用户输入两种成分(carbohydrate
和 vegetable
)并返回食谱列表。我得到了那个工作。我还在代码的其他地方使用了协同过滤来表示“嘿,新用户,其他人喜欢这些食谱!”
如何将这些 recipe_id 提升到查询列表的顶部?
下面的代码不返回结果,因为我告诉我要给我的结果既有所需的 likedIds
,也有不在 likedIds
中的食谱。但是如何将 likedIds
置于列表顶部?
let searchTextA: [String] = [carbohydrate," "+carbohydrate,carbohydrate+"s",carbohydrate+"es"]
let subPred1 = NSPredicate (format: "ANY ingredients IN %@",argumentArray: [searchTextA])
let searchTextB: [String] = [vegetable," "+vegetable,vegetable+"s",vegetable+"es"]
let subPred2 = NSPredicate (format: "ANY ingredients IN %@",argumentArray: [searchTextB])
let likedIds: [Int] = [13733,32441]
let subPred3 = NSPredicate (format: "recipe_id IN %@",argumentArray: [likedIds])
let subPred4 = NSPredicate (format: "NOT (recipe_id IN %@)",likedIds)
let predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [subPred1,subPred2,subPred3,subPred4])