首页 > 解决方案 > 为什么这个过滤程序这么慢?

问题描述

我第一次在我的应用程序中使用 CoreData,当我过滤我的数据时,它需要 20-30 秒才能过滤。列表视图有一个浮动按钮,当点击该按钮时,用户可以选择他们想要过滤的状态。点击此按钮将返回列表视图,并在处理时显示为冻结状态。它返回的数据是准确的,只是似乎花费的时间比应有的要长得多。最多有 3600 个条目,所以这应该是即时的。

这是填充我的过滤列表视图的代码。

init(categoryFilter: String, stateFilter: String) {
  if (categoryFilter.count > 0 && stateFilter.count > 0){
       let predicate = NSPredicate(format: "category BEGINSWITH %@ AND state BEGINSWITH %@", categoryFilter, stateFilter)
       fetchRequest = FetchRequest<Bonus>(entity: Bonus.entity(), sortDescriptors: [], predicate: predicate)
   } else if (categoryFilter.count > 0 && stateFilter.count <= 0){
       let predicate = NSPredicate(format: "category BEGINSWITH %@", categoryFilter)
       fetchRequest = FetchRequest<Bonus>(entity: Bonus.entity(), sortDescriptors: [], predicate: predicate)
   } else if (categoryFilter.count <= 0 && stateFilter.count > 0){
       let predicate = NSPredicate(format: "state BEGINSWITH %@", stateFilter)
       fetchRequest = FetchRequest<Bonus>(entity: Bonus.entity(), sortDescriptors: [], predicate: predicate)
   } else {
       fetchRequest = FetchRequest<Bonus>(entity: Bonus.entity(), sortDescriptors: [])
   }

我不确定还有哪些其他代码对您有用,但请让我知道我还应该发布什么。

任何想法我做错了什么?

标签: swiftcore-dataswiftui-list

解决方案


推荐阅读