gpt4 book ai didi

iphone - 使用单个搜索字符串核心数据查询多列

转载 作者:行者123 更新时间:2023-12-03 21:20:48 30 4
gpt4 key购买 nike

我有一个简单的核心数据模型,具有两个字符串属性(大小和类别)。给定一个像“小部件”这样的搜索字符串,是否可以返回与所有查询词匹配的至少一个属性的记录(即所有具有“小”尺寸和“小部件”类别的记录)?我目前有:

NSString *search = @"small widget"
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"size contains[cd] %@ OR category contains[cd] %@", search, search];
...

这不会返回任何结果(因为没有类别或大小等于“小部件”)。有什么建议么?请注意,搜索字符串将由用户从文本字段输入,并且可能以任何顺序出现,因此我无法手动拆分。

最佳答案

我还没有测试过,但看起来你想要这个:

NSString *search = @"small widget";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ contains[cd] size AND %@ contains[cd] category", search, search];

搜索字符串将包含(或不包含)尺寸和类别,您应该询问搜索字符串中是否包含当前尺寸或类别。

您还可以拆分搜索字符串并修改谓词。您应该从它们中找出表现更好的一个

NSString *search = @"small widget";
NSArray *array = [search componentsSeparatedByString:@" "];
NSMutableArray *subPredicates = [NSMutableArray array];
for (NSString *q in array) {
[subPredicates addObject:
[NSPredicate predicateWithFormat:@"size contains[cd] %@ OR category contains[cd] %@", q, q]];
}
NSCompoundPredicate *predicate = [[[NSCompoundPredicate alloc] initWithType:NSAndPredicateType
subpredicates:subPredicates] autorelease];

关于iphone - 使用单个搜索字符串核心数据查询多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5036976/

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