如果我的Blog
有Tag
个NSPredicate
,我将如何创建一个Blog
来获得所有Tag
个,其中包含两个,只有两个,具体NSPredicate *tagsPredicate = [NSPredicate predicateWithFormat:@"tags == %@", tagsArray];
s?
此:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'to-many key not allowed here'
导致致命错误:
NSSet
我认为,由于Core Data使用了多个关系的集合,我应该使用ANY tags.name IN %@
,但这会产生同样的错误。
我很难过,因为像Blog
这样的其他格式会返回包含两个Tag
中任意一个的ALL
个。 IN
与*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported predicate ALL tags.name IN {iOS, programming}'
相结合会导致崩溃:
{{1}}
如果没有在查询后过滤结果,我想要的是不可能的吗?
答案 0 :(得分:2)
尝试以下几点:
[NSPredicate predicateWithFormat:@"SUBQUERY(tags, $t, $t IN %@).@count = 2 AND SUBQUERY(tags, $t, NOT $t IN %@).@count = 0", tagsArray, tagsArray];
(即在自然语言中,与我的数组匹配的标签数为2,与我的数组不匹配的计数为0)。