gpt4 book ai didi

cocoa - NSPredicate 字符串与 NSSet 匹配

转载 作者:行者123 更新时间:2023-12-03 16:19:05 24 4
gpt4 key购买 nike

我正在尝试使用 NSPredicate 来搜索与生成的 CoreData 对象数组相匹配的字符串:

// Grab an array of all Company projects
NSArray *array = [[company projects] allObjects];

我使用以下谓词将任何项目名称、公司名称或客户名称与不区分大小写的字符串进行匹配(注意:这应该允许部分匹配,以便“App”将匹配“Apple Inc.”等) :

(name LIKE[cd] %@) OR (ANY companies.name LIKE[cd] %@) OR (ANY companies.clients.name LIKE[cd] %@)

谓词中提到的 CoreData 关系如下所示:

SELF -> (NSString *) name
SELF -> (NSSet *) companies -> (NSString *) name
SELF -> (NSSet *) companies -> (NSSet *) -> clients -> (NSString *) name

每当我尝试按上述谓词进行过滤时,我都会在控制台中找到以下内容:

HIToolbox: ignoring exception 'Can't do regex matching on object {(
"Apple Inc.",
"Test Co.",
Microsoft
)}.'

如果我理解正确,看起来好像尝试匹配键路径“companies.clients.name”会返回一个 NSSet (或其他对象),其中需要 NSString (名称)。

我做错了什么?

最佳答案

companies.clients.name 将返回 NSSet 集合,其中集合中的每个元素都是一个公司客户名称的内容(即一个 NSSet )。您可能希望在谓词字符串中使用 companies.@unionOfSets.clients.names

请参阅使用指南Set and Array Operators在键值编码中。

关于cocoa - NSPredicate 字符串与 NSSet 匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3409089/

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