Swift:过滤对象——使用符号进行精确搜索

标签 swift

想知道 Swift 是否允许使用搜索运算符,如通配符“*”或排他性“-”,或 bool 搜索运算符,如 AND、OR 和 NOT。我所说的搜索运算符是指应用程序用户将输入到文本框中以缩小搜索范围的符号。我认为 NSPredicate 的 LIKE 允许使用“*”和“?”。但我还没有在网上看到与 swift 经常引用的过滤代码相关的搜索运算符的例子:

object.filter{$0.objectProperty.contains(searchText)}     

如果有人能为我指明某些文献的正确方向,我将不胜感激。我有兴趣了解如何让应用程序用户使用上面提到的搜索运算符和/或使用类似以下内容来缩小搜索范围:dog w/20 food

后一个搜索词会在“食物”的 20 个字符内找到“狗”的所有实例。

最佳答案

The filter on Swift's array只是一个返回它自己的类型的方法,使用返回 Bool 的传递函数。所以简短的回答是,没有任何与“过滤器”功能相关的东西可以让你做任何你正在谈论的事情。

过滤/查找事物的一种常用方法是使用 Regular Expressions这是 Swift 支持的。 (You can search here for more specific info)。

如果您在数据库中拥有所有内容并希望您的用户知道如何编写谓词,我想您可以使用 CoreData 并使用来自用户的字符串进行搜索,但这似乎不太可能。

除了这些选项之外,您可能需要搜索第三方库或自己构建某种解析器。

关于Swift:过滤对象——使用符号进行精确搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42012586/

相关文章:

ios - Xcode 不会将带有 Swift 框架的 Swift iOS 应用程序存档为单独的目标。这怎么能解决?

swift - 您如何知道登录问题是模拟器造成的还是您的代码造成的?

ios - 在 swift ios 10 上使用 Facebook 登录时浏览器页面空白

ios - 如何使用 Swift 获取 Xcode 根文件夹目录路径

ios - Swift + Firebase - 检查具有 autoId 的节点的值是否存在

swift - 旋转瓶子应用

ios - 在 Swift 中以编程方式切换选项卡栏失败

ios - 照片未显示在收藏夹 View 中

swift - 如何在 block 外快速创建一个指向自身的弱指针

ios - 为什么滑动手势识别器只能工作一次?