[英]Core data to-many filtering
我有兩個實體: Cluster <-->> Photos
。
我需要選擇所有帶有照片的群集,其中照片id大於,即:
Cluster
1 Cluster1
2 Cluster2
Photos
1 Photo1 Cluster1
2 Photo2 Cluster2
3 Photo3 Cluster1
4 Photo4 Cluster2
即:使用照片獲取所有群集,其中photoId> =3。我希望具有Cluster1-Photo3,Cluster2-Photo4
目前,我正在嘗試使用謂詞: ANY photos.id > 393614542
為Cluster
實體創建獲取請求。 而且效果很好。
現在,我正在嘗試制作(NOT photos.id IN {393614542, 355088346}) AND photos.id >= 301213165 AND photos.id <= 393614542
,但我沒有運氣。
導致錯誤: to-many key not allowed here
我可以使用CoreData執行此類查詢嗎?
您可以使用SUBQUERY為每張photo
“同時”測試幾種條件:
NSPredicate *predciate = [NSPredicate predicateWithFormat:@"SUBQUERY(photos, $p, (NOT $p.id IN {393614542, 355088346}) AND $p.id >= 301213165 AND $p.id <= 393614542).@count > 0"];
或在Swift中:
let predicate = NSPredicate(format:"SUBQUERY(photos, $p, (NOT $p.id IN {393614542, 355088346}) AND $p.id >= 301213165 AND $p.id <= 393614542).@count > 0")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.