gpt4 book ai didi

ios - NSPredicate predicateWithFormat :argumentArray: Only Evaluating First Argument

转载 作者:可可西里 更新时间:2023-11-01 03:35:56 25 4
gpt4 key购买 nike

我在使用 NSPredicate predicateWithFormat:argumentArray 时遇到了一些问题:。在此示例中,serverIDList 是字符串数组。结果是一个 NSManagedObjects 数组,其属性名为“flid”,它是一个字符串。

NSMutableString *predicateString = [[NSMutableString alloc] init];

[predicateString appendString:@"(flid IN %@)"];

[results filterUsingPredicate:[NSPredicate predicateWithFormat:predicateString argumentArray:serverIDList]];

问题是 [NSPredicate predicateWithFormat:predicateString argumentArray:serverIDList] 的计算结果为“flid IN '2155'”,这只是数组 serverIDList 的第一个值.我似乎无法获得评估整个数组的谓词。这里有什么遗漏吗?

谢谢!

最佳答案

[NSPredicate predicateWithFormat:@"(flid IN %@)" argumentArray:serverIDList]

相当于

[NSPredicate predicateWithFormat:@"(flid IN %@)", id1, id2, ..., idN]

其中 id1, ..., idN 是数组 serverIDList 的元素。这应该可以解释为什么只评估第一个元素。

你可能想要的是

[NSPredicate predicateWithFormat:@"(flid IN %@)", serverIDList]

备注:我建议不要首先将谓词创建为字符串。的机会引用或转义错误非常高。仅将 predicateWithFormat 与常量格式字符串。如果您必须在运行时动态组合谓词,使用 NSCompoundPredicate

关于ios - NSPredicate predicateWithFormat :argumentArray: Only Evaluating First Argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18059170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com