我正在完成新版本的swift应用程序,我注意到从核心数据加载变得非常慢。同样的代码在上一版本的应用程序中运行得很好,但在新版本中却非常慢。代码如下,它是100%一样,在上一个版本,但现在我必须等待缓存5-6秒,缓存数据也是相同的,当测试新旧版本!
我已经为此浪费了几天时间,等待解决,这样我就可以发布更新的应用程序。我打印索引只是为了看看打印所有600个索引需要多少时间,在上一个版本中,它是最大的1秒,在新版本中,同样的代码大约5-6秒!
我只是发现ObjectTMP.init(.. )花时间在最新的版本中,而不是在上一个版本中。我会更深入地研究它
能帮上忙吗。
DispatchQueue.global(qos: .userInitiated).async {
if #available(iOS 10.0, *) {
// load
//We need to create a context from this container
let managedContext = self.appDelegate.persistentContainer.newBackgroundContext()
//Prepare the request of type NSFetchRequest for the entity
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Cache")
do {
let result = try managedContext.fetch(fetchRequest)
var j = 0
for data in result as! [NSManagedObject] {
...
hash[String(Int(data.value(forKey: "id") as! String)] = ObjectTMP.init( ...发布于 2020-01-17 20:41:06
如果你首先在模拟器或连接的设备上测试,你应该删除
print("j:" + j.description)当你加载大量数据时,它会减慢它的速度,因为你在那里有循环,我猜你添加这个"print“语句是为了开发。
发布于 2020-01-18 03:35:28
CryptoSwift最新版本出现问题。我使用swift 4.2,对于那个版本,我应该使用<= 0.15 CryptoSwift,而我使用的是1.3。在0.15版本中,一切工作正常,不会有5-6秒的延迟。
https://stackoverflow.com/questions/59786659
复制相似问题