gpt4 book ai didi

ios - 具有多个文本字段的 NS 谓词

转载 作者:行者123 更新时间:2023-11-29 02:41:40 26 4
gpt4 key购买 nike

我正在开发一个 Core Data 应用程序,它允许用户将数据添加到 TableView 。每个对象具有三个不同的属性。在文本字段中输入属性后,用户保存数据对象;在 TableView 中可以看到它们。

我还实现了一个搜索功能,让用户可以使用 NSPredicate 根据对象的属性搜索他们的对象。我看着 this指南和这个tutorial有关如何执行此操作的信息。每个属性对应一个谓词,如下面的代码所示。

我的问题是用户只能根据第一个属性搜索对象。因此,当他们在第一个属性的文本字段中输入内容时,搜索会返回正确的结果,并且每个属性都会显示在文本字段中。如果用户尝试使用第二个或第三个属性进行搜索,则不会返回任何内容。

NSPredicate *predAttOne =
[NSPredicate predicateWithFormat:@"(name CONTAINS %@)",
_one.text];
[request setPredicate:predAttOne];


//////////////PROBLEM CODE///////////////

//If the code below is commented out, the user is able to search using
//the first attribute successfully, and al the data attributes are shown
//in the text fields. If it's not commented out, no data is found.

NSPredicate *predAttTwo =
[NSPredicate predicateWithFormat:@"(mint CONTAINS %@)",
_two.text];
[request setPredicate:predAttTwo];

NSPredicate *predAttThree =
[NSPredicate predicateWithFormat:@"(year CONTAINS %@)",
_three.text];
[request setPredicate:predAttThree];

有谁知道如何使用谓词根据不同的属性进行搜索?我知道复合谓词,但我不确定这就是我在这种情况下所需要的。

非常感谢!

最佳答案

你可以这样做谓词:

[NSPredicate predicateWithFormat:@"(name CONTAINS %@) OR (mint CONTAINS %@) OR (year CONTAINS %@)",  _two.text, _two.text, _two.text];

关于ios - 具有多个文本字段的 NS 谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25696009/

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