gpt4 book ai didi

ios - 从 CoreData 获取多个实体

转载 作者:行者123 更新时间:2023-11-29 01:06:58 24 4
gpt4 key购买 nike

我正在尝试从 CoreData 中获取多个实体.我已经在 viewDidAppear 函数中尝试过了。但是,由于数据量很大,是从服务器中的远程 JSON 保存的,因此获取它似乎需要时间。我什至关注了这个 tutorial .但是获取大量数据似乎有点慢。有没有更好的方法。

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
let context: NSManagedObjectContext? = (UIApplication.sharedApplication().delegate as? AppDelegate)?.managedObjectContext!

let TPTodayFetchRequest = NSFetchRequest(entityName: Constants.CoreDataEntities.TPTodayCoreDataEntity)

let mahinaSort = NSSortDescriptor(key: "month_np_id", ascending: true)
TPTodayFetchRequest.sortDescriptors = [mahinaSort]
let error: NSError? = nil

do {

let patroDailyResults = try context!.executeFetchRequest(TPTodayFetchRequest) as? [TPToday]


if let results = patroDailyResults
{
patroDaily = results
}
else
{
print("Couldn't fetch \(error), \(error!.userInfo)")
}
}
catch {
print("error")
}


self.refreshUI()
}

现在我的问题是,从 CoreData 获取实体的最佳方法是什么,这样获取过程才能顺利进行并且不会影响应用程序性能。此代码片段非常适合抓取,但我想让它更快。

最佳答案

我怀疑你能否让它变得更快,但是这样长时间运行的操作不应该在主线程上运行。

相反,您应该遵循此模式在后台线程上进行抓取,并在完成后更新受影响的 UI:

let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
// fetch data
dispatch_async(dispatch_get_main_queue()) {
// update some UI
}
}

关于ios - 从 CoreData 获取多个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36256612/

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