【发布时间】:2023-04-06 13:20:01
【问题描述】:
在我的应用程序中,我必须从核心数据请求获取的数组中的 NSStrings 数组中搜索字符串。 fetched 数组包含大约 30,000 个条目(并且它必然会增长),而 strings 数组可以多达数十万个字符串。 我现在要做的是从核心数据存储中选择所有字符串,并循环遍历字符串数组,创建一个 NSPredicate 并使用它来过滤核心数据获取的数组。 我认为如果我事先对两个数组进行排序,这样可以缩小每个后续搜索的范围,但是是否有可能使用谓词从某个位置开始搜索数组?
最好的问候, 蒂莫菲。
【问题讨论】:
-
您可以调用
-[NSFetchRequest setSortDescriptors:]对fetch请求返回的结果进行排序。还是您需要比这更复杂的东西? -
嗯,我知道。问题是,首先想到的是手动比较数组元素。 IE。您遍历其中一个数组,将当前元素与另一个数组的当前元素进行比较,如果相等,则继续处理两个数组的下一个元素,如果不相等,则继续处理其中一个的下一个元素数组(现在我已经写了它,这似乎是 合理的解决方案)。但是还有什么更“自动”的吗?它看起来很常见。
-
让我确保我理解。您是否要合并两组字符串?两者都可能非常大。一个或两个都存储在核心数据中吗?
-
不完全是。我需要知道我作为输入数组(未存储)的字符串是否存在于存储中,如果存在,它们在持久存储中具有哪些属性。只存储其中一个。