NSPredicate with a !=?

前端 未结 2 926
滥情空心
滥情空心 2021-01-27 05:41

I have Core Data Entities Person and Boundary. They have a many-to-many relationship (each person can have many boundaries, and each boundary can have many persons).

I a

2条回答
  •  情歌与酒
    2021-01-27 06:39

    [NSPredicate predicateWithFormat:@"ANY persons != %@", fred]
    

    finds all objects that are related to any person other that Fred. What you want is

    [NSPredicate predicateWithFormat:@"NOT(ANY persons = %@)", fred]
    

    and this should return all objects that are not related to Fred.

    However, there seems to be a Core Data bug that "NOT ANY" or "NONE" do not work correctly in a predicate, compare NSPredicate Aggregate Operations with NONE. The workaround is to use a SUBQUERY:

    [NSPredicate predicateWithFormat:@"SUBQUERY(persons, $p, $p == %@).@count == 0", fred]
    

提交回复
热议问题