使用 NSPredicate 搜索 NSFetchedResultsController

2024-03-27

我已经被这个问题困扰了一段时间,并已尽力找出解决方案。

我正在使用 Core Data,而且对于 iOS 编码来说相对较新,我在如何搜索 fetchedResultsController 以过滤掉用户在 searchBar 中输入的字符串时遇到了一些麻烦。

我知道如何从 searchBar 获取字符串以及如何调用 fetchResultsController 方法。但我正在努力解决的是如何使用 NSPredicate 仅将使用核心数据中存储的行与在 searchBar 中键入的行进行匹配。

目前我正在 - (NSFetchedResultsController *)fetchedResultsController 中执行此操作

(我按字母顺序切换排序只是为了向自己表明它正在工作)。

if (!isSearching) {
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"LabelValue" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

    [fetchRequest setSortDescriptors:sortDescriptors];

    [sortDescriptor release];
    [sortDescriptors release];
}

else {
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"LabelValue" ascending:NO];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

    NSLog(@"%@", searchBar.text);

    /*NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY contains[cd] %@", searchBar.text];
    [fetchRequest setPredicate:predicate];*/

    [fetchRequest setSortDescriptors:sortDescriptors];

    [sortDescriptor release];
    [sortDescriptors release];
}

我不太明白如何使用谓词来过滤我的数据。注释掉的代码在取消注释时会导致 NSException:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "ANY contains[cd] %@"'

这可能是一个非常简单的解决方案,但我将非常感谢您能够提供的任何帮助。谢谢


   

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY <yourFieldNameHere> contains[cd] %@", searchBar.text];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 NSPredicate 搜索 NSFetchedResultsController 的相关文章

随机推荐

  • 在 Windows 中设置 cron 作业

    我每天都必须从 SFTP 服务器下载文件 我有一个从服务器检索文件的程序 但我正在考虑设置一个 cron 作业 或任何类似的作业 来自动执行该操作 我们是一家 Windows 商店 需要在 Windows 中设置 cron 作业 windo
  • 如何通过 MongoDB 同步在两个不同服务器上运行的两个应用程序

    我正在 golang 中开发一个 Web 应用程序 并使用单个 MongoDB 实例作为数据存储 我有应该专门执行的代码 由于我的 Web 应用程序运行在两个不同的服务器上 因此我无法使用 golang 同步工具 想法是通过锁定文档来使用
  • 在 PowerShell 中查询 LINQ 样式的列表

    add type Language CSharpVersion3 TypeDefinition public class pack code public pack code public string code get set publi
  • 对于不同的 arima 模拟组合,在 r 中获得第一个真实订单之前,如何计算 arima 订单不真实的次数

    大多数时候一个人跑步arima sim 函数来模拟特定的顺序arima mosel但是当人们通过检查此类模拟时间序列数据时auto arima 函数 它通常不会与 ARIMA 一个愿望和在arima sim 我想知道一个人可能需要跑多少次a
  • 内置函数str.lower()是如何实现的?

    我想知道 str lower 在 Python 中是如何实现的 所以我克隆了cpython https github com python cpython存储库并使用 grep 进行了一些搜索 经过几次跳跃之后unicode lower i
  • 分布式 Tensorflow:检查失败:大小>=0

    我正在使用 keras 2 0 6 Tensorflow的版本是1 3 0 我的代码可以在 theano 后端运行 但在张量流后端运行失败 F tensorflow core framework tensor shape cc 241 检查
  • 使用react-testing-library时无法找到带有文本的元素:“myText”错误

    我正在尝试使用react testing library使用 React 和 Jest 但我的一个测试失败了 我认为这与 regex 上的正则表达式有关className prop在测试文件上 下面我附上了各自的测试和组件文件 另外 有没有
  • 如何更改后退按钮上的文本

    默认情况下 后退按钮使用视图控制器的标题作为其上的文本 我可以在不更改视图控制器标题的情况下更改后退按钮上的文本吗 我需要这个 因为我有一个视图控制器 其标题太长而无法显示 在这种情况下 我想仅显示 后退 作为后退按钮的标题 我尝试了以下方
  • Graphite:用一个命令处理多个系列

    我想将两个系列放在石墨上的同一张图中仪表板 但是 由于仪表板需要单行命令 我找不到不涉及使用通配符的方法 这是我想要在同一张图中显示的两个系列的示例 sum base foo bar positive sum base foo bar ne
  • 自定义选择菜单对话框上的 jquery mobile 关闭按钮

    我正在尝试将 jqm 对话框上的关闭按钮更改为 X 以外的其他按钮 我不能为此使用 CSS 因为我不希望每次都应用它 所以我正在寻找一种使用 jquery 来实现此操作的方法 有问题的对话框是选择菜单 http api jquerymobi
  • @BeforeClass 注释:Junit 与 TestNG

    Why the BeforeClass中的方法JUnit is static而在TestNG its non static TestNG是作为改进而开发的JUnit 那么他们为什么选择这种实现方式呢 Since BeforeClass只运行
  • 检查查询字符串是否为 int 的最佳方法?

    我的一位同事想到的一个问题是 检查查询字符串是否为 int 的最佳方法是什么 我建议使用经典的 Int Parse 和 try and catch 还建议使用 TryParse 其实我也想不出其他的办法了 有任何想法吗 Int32 TryP
  • 使用 jQuery 编写 OO Javascript

    我来自 Prototype JS 背景 通过使用 OO Javascript 被鼓励Class create 现在我正在做一些 JQuery 工作 并且尝试编写一些结构正确的 JQuery 代码 例如 我可以从两个不同的单击事件处理程序调用
  • MySQL SUM 函数

    我了解 SQL sum 函数 这是我的代码
  • 无法对文档执行 querySelectorAll。怎么修?

    我在做什么 我有从 PHP 数组生成的链接 该数组生成它自己的唯一 ID 该 ID 应该指向它自己的模态 弹出窗口 div 该 div 具有与链接 ID 匹配的 ID 模态框也是使用 PHP 数组自动生成的 我收到这个错误 我对此非常陌生
  • REPLACE INTO 查询是好的做法吗?

    我需要一个 SQL 查询来更新或创建数据库条目 如果某个客户尚不存在 我在网上找到了目前的解决方案 command CommandText REPLACE INTO Resource Tracer dbo Customer Customer
  • 如何登录 OpenEdge Progress?

    我找到了在 Progress 4GL 中记录某些内容的不同方法 但没有一个令人满意 简单的MESSAGE语句的缺点是它对帧的处理非常糟糕 ON CHOOSE OF btn Q4 DO MESSAGE Line 1 MESSAGE Line
  • struts2 中的 JQuery Grid - 初学者

    我对 struts2 和 JQuery 编程很陌生 在我的应用程序中 当调用 loginAction 时 如果用户是管理员 我会将他们定向到 AdminLoadAction 此操作加载 adminHome jsp 我需要的是 adminHo
  • 有没有办法将--compressed传递到PHP的curl_setopt()中?

    使用curl时 我发现我所访问的服务器上的行为有所不同 具体取决于我是否通过 compressed作为一个论点或不 我已经将 Accept Encoding 标头设置为 gzip deflate sdch curl setopt ch CU
  • 使用 NSPredicate 搜索 NSFetchedResultsController

    我已经被这个问题困扰了一段时间 并已尽力找出解决方案 我正在使用 Core Data 而且对于 iOS 编码来说相对较新 我在如何搜索 fetchedResultsController 以过滤掉用户在 searchBar 中输入的字符串时遇