gpt4 book ai didi

iphone - NSPredicate 在内部使用任何搜索算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:33 25 4
gpt4 key购买 nike

目前我正在使用 NSPredicate 从字符串中进行搜索。但我有大约 2000 条记录。因此使用 NSPredicate 遍历这些记录进行搜索需要一些时间。

我只想知道 NSPredicate 是否在内部使用任何搜索算法,还是应该使用任何搜索算法进行快速搜索?

我希望我的应用程序应该像联系人应用程序一样(顺畅地)搜索。我应该怎么做才能像联系人应用程序一样顺利进行搜索。

谢谢。

最佳答案

NSPredicate 不使用任何搜索算法 - NSPredicate 所做的只是表示您的查询。

接受 NSPredicate 作为选择搜索算法的选项的工作。在你的情况下,它可能是 NSArrayfilteredArrayUsingPredicate: 方法?

如果你想更快地搜索数据,你将不得不自己编写一个更好的算法,我打赌数组只是遍历每个项目并将其与谓词匹配。效率不高,但它适用于任何东西:)

尝试查看 sqlite(或 CoreData),它们的索引比普通数组更好。

或者您可以自己制作一个索引 - 将每个联系人放入字典中,键是联系人的第一个字母 - 这应该会减少您必须搜索的记录数量!

即而不是数组

[ @"Alex", @"Bob", @"Bill", @"Carl" ... ]

有字典

{
@"A" : [ @"Alex" ],
@"B" : [ @"Bob", @"Bill" ],
@"C" : [ @"Carl" ]
...
}

对于搜索字符串@"Bi",您只需在数组中的项目中搜索@"B"

PS 不要忘记让你的字典的关键大小写/变音符号独立;)

关于iphone - NSPredicate 在内部使用任何搜索算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9964243/

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