来自 coredata 的数据需要更多时间在 swift 中显示在 tableview 上

问题描述

在我的应用程序中,我从核心数据中获取数据并将其显示在表格视图中。有一个搜索栏。还有一个分段控制器,它有两个选项卡。 “全部”和“最近”。选择“最近”后,它将显示所有最近的搜索数据。 “最近”表中存在的数据不会显示在“所有”表中。

获取所有数据后,我正在检查最近数组中的数据,如果它存在于最近数组中,我不会将其添加到所有数据数组中。但问题是要完成所有这些事情,需要更多时间。

我的代码是:-

 func load() {
        let data = CoreDataStack()
        let moc = data.persistentContainer.viewContext
        
        let sortByName = NSSortDescriptor(key: "date",ascending: false)
        let sortDescriptors = [sortByName]
        
        var newDignosysData: [String] = []
        
        let request: NSFetchRequest<Dignose> = Dignose.fetchRequest()
        request.sortDescriptors = sortDescriptors
        
        do {
            let students = try moc.fetch(request)
            if students.count > 0 {
                self.practionerListData = []
                self.dignos = []
                for i in students {
                    if i.name == ""{
                        print("we found an empty value here")
                    }
                    else{
                        newDignosysData.append(i.name ?? "")
                        let recentData = self.checkIfDignosysPresentInRecent()
                        
                        self.practionerListData = newDignosysData.filter{!recentData.contains($0)}
                        self.dignos = self.practionerListData
                        
                        
                    }
                }
            }
            dispatchQueue.main.async {
                print("practioner data count is \(self.practionerListData.count)")
                self.practionerTableView.reloadData()
            }
            
        }
        catch let error as NSError {
            print("Error fetching students: \(error.localizedDescription)")
        }
    }


 func checkIfDignosysPresentInRecent() -> [String] {
        var avaiableData: [String] = []
        let data = CoreDataStack()
        let moc = data.persistentContainer.viewContext
        
        let sortByName = NSSortDescriptor(key: "date",ascending: false)
        let sortDescriptors = [sortByName]
        
        let request: NSFetchRequest<Recent> = Recent.fetchRequest()
        request.sortDescriptors = sortDescriptors
        
        do {
            let students = try moc.fetch(request)
            if students.count > 0 {
                
                for i in students {
                    if i.name == ""{
                        print("we found an empty value here")
                    }
                    else{
                        avaiableData.append(i.name ?? "")
                        
                        
                    }
                }
            }
            
        }
        catch let error as NSError {
            print("Error fetching students: \(error.localizedDescription)")
        }
        return avaiableData
    }
    

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...