ios - Core data find objects containing in list item -


i have such model

class group: nsmanagedobject {     @nsmanaged var id: int     @nsmanaged var headitems: nsorderedset     @nsmanaged var chestitems: nsorderedset }  class item: nsmanagedobject {      @nsmanaged var id: int     @nsmanaged var datecreate: nsdate } 

how write predicate find groups containing in chestitems or headitems specified item?

this not working:

let fetchrequest = nsfetchrequest(entityname: "group") fetchrequest.predicate = nspredicate(format: "(any headitems == %@) or (any chestitems == %@)", item,item) let result = (self.moc.executefetchrequest(fetchrequest, error: nil) as? [group]) ?? [group]() 

update: problem updating references in relationship, code working

i believe need use subquery this, instead of any. try this:

nspredicate(format: "subquery(headitems, $headitem, $headitem.id == %@).@count > 0 or subquery(chestitems, $chestitem, $chestitem.id == %@).@count > 0", item.id, item.id ) 

you might refer this cheatsheet on nspredicates.


Comments