Core data predicateWithFormat:argumentArray:使用NSArray中的所有项

Core data predicateWithFormat:argumentArray:使用NSArray中的所有项,core-data,nsarray,nspredicate,nsfetchrequest,predicatewithformat,Core Data,Nsarray,Nspredicate,Nsfetchrequest,Predicatewithformat,但当我使用: - (void)filterViaCategories:(NSArray *)array { NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(todo_category_id == %@)" argumentArray:array]; } 结果是: po predicate 它仅使用数组零索引元素的41123 我希望数据库中所有id的所有类别都出现在数组中,而不是索引0处的唯一对象:

但当我使用:

- (void)filterViaCategories:(NSArray *)array   {
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(todo_category_id == %@)" argumentArray:array]; 
}
结果是:

po predicate
它仅使用数组零索引元素的41123

我希望数据库中所有id的所有类别都出现在数组中,而不是索引0处的唯一对象:
(待办事项类别id==41123412343455)


我该怎么做呢?

那么您不应该使用
predicateWithFormat:argumentArray:
,您需要更改格式

你想要的是:

todo_category_id == 41123..

但我导致了如下错误:[[uuu NSCFNumber countbyEnumerating with state:objects:count:]:发送到instancemy数组的无法识别的选择器中有NSNumber元素..我可以将它们更改为“id”的字符串值吗?
todo\u category\u id
是字符串属性吗?但是数组只包含数字?那么看起来您实际上并没有向该方法发送数组,您只是发送了一个单独的
NSNumber
实例…我在数组内部进行了检查..它的计数为3,并且我在其索引处打印的值为125487659853
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"todo_category_id IN %@", array];