我正在研究iphone应用程序,并且我已经使用Group和Contact对象设置了一个简单的多对多关系。一个组可以有很多联系人,联系人可以属于多个组。崩溃使用集合操作:核心数据iOS应用程序中的“ALL”
我想使用下面的谓词来选择特定联系人不属于的所有组。 (注:uid字段是我用来唯一标识接触实体字符串字段)
[NSPredicate predicateWithFormat:@"ALL contacts.uid != %@", contactUId]
根据苹果的谓词编程指南中,所有集合操作是有效的,但我得到以下异常,表明这是一个不支持的断言:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported predicate (null)'
我可以使用类似的谓词来选择联系人确实已经属于这样看来,我拥有所有正确定义的关系和领域的使用该谓词的所有组。
[NSPredicate predicateWithFormat:@"ANY contacts.uid == %@", contactUId]
例外构建谓语时被抛出而不是当我试图所以它似乎与我使用的,而不是核心数据支持的语法来实际执行读取请求。我究竟做错了什么?
Ambrose,欢迎来到SO。你能否围绕谓词的定义包含更多的代码? – makdad 2011-05-07 16:00:07
我不确定还需要包括什么。 predicateWithFormat:call中引发异常(与执行fetch过程相反),所以很明显问题与谓词有关,而与谓词无关。 – akrapacs 2011-05-09 13:00:57
我在测试/示例应用程序中重新创建场景,并且正如我最初指出的那样,在调用[NSManagedObjectContext executeFetchRequest:error:]方法调用而不是在[NSPredicate predicateWithFormat:]调用中引发异常。 – akrapacs 2011-05-30 16:33:11