swift - 大中央调度

标签 swift optimization grand-central-dispatch

我想稍微加快我的代码速度。这是我的代码:

var loadedText : NSAttributedString = NSAttributedString(string: "")
let changeThemeDispatchGroup = DispatchGroup()
DispatchQueue.global(qos: .userInteractive).async {

    if self.selectedNote.content != nil
    {
        changeThemeDispatchGroup.enter()
        loadedText = self.selectedNote.content as! NSAttributedString
        changeThemeDispatchGroup.leave()
    }
    else
    {
        self.noteTextView.becomeFirstResponder()
    }


    DispatchQueue.main.async
    {
        self.noteTextView.attributedText = loadedText

    }

    changeThemeDispatchGroup.notify(queue: DispatchQueue.main)
    {
        self.changeLetterColor()
    }
}

我正在从数据库加载 loadedText 并且正在更新 TextView 。更新 TextView 后,我正在更改每个字母的颜色。它很好用。但是现在,我想从数据库中加载 loadedText,更改文本颜色,然后更新 TextView 。你能帮帮我吗?

最佳答案

忘记分组,改变顺序

var loadedText = NSAttributedString(string: "")
DispatchQueue.global(qos: .userInteractive).async {

    if let content = self.selectedNote.content as? NSAttributedString {
        loadedText = content 
    } else {
        self.noteTextView.becomeFirstResponder()
    }

    DispatchQueue.main.async {
       self.changeLetterColor()            
       self.noteTextView.attributedText = loadedText
    }
}

关于swift - 大中央调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43953144/

相关文章:

mysql - 优化大表主键搜索

ios - 不使用 dispatch_async 和重复 NSTimer 调用的方法

Objective-C – 构建用于后台处理的 GCD 代码

正则表达式在 swift 中提取一个字符串和另一个字符串的第三次出现之间的字符串?

ios - 如何在 editActionsForRowAt 操作中调整图标

swift - 继承SKShapeNode

mysql - 如何优化大表 JOIN 查询的性能

c - 如何在线程安全 C 库中高效实现句柄

ios - 在ios中下载背景图片

ios - 替换文本以更改音高/调