问题描述
在我的应用程序中,我从核心数据中获取数据并将其显示在表格视图中。有一个搜索栏。还有一个分段控制器,它有两个选项卡。 “全部”和“最近”。选择“最近”后,它将显示所有最近的搜索数据。 “最近”表中存在的数据不会显示在“所有”表中。
在获取所有数据后,我正在检查最近数组中的数据,如果它存在于最近数组中,我不会将其添加到所有数据数组中。但问题是要完成所有这些事情,需要更多时间。
我的代码是:-
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
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)