2017-05-13 3 views
0

私のコードを少しスピードアップしたいと思います。これは私のコードです:グランドセントラルディスパッチ

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をロードしていると私は、テキストビューを更新しています。テキストビューを更新した後、私は各文字の色を変更しています。それは素晴らしい作品です。しかし今、データベースからloadedTextを読み込み、テキストの色を変更してテキストビューを更新したいとします。あなたは私を助けることができます?

答えて

1

はおかげで、それが動作..私はその直後、私の機能を変更する必要があるグループを忘れて、順番に

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 
    } 
} 
+0

を変更...私はここに別の質問をするならば、それは大丈夫ですか?私はグラッドセンターのディスパッチを使ってforループをスピードアップしようとしましたが、ある時点でクラッシュしました。理由はわかりません。 – Elita

+0

新しい質問をしてください。 – vadian

+0

ありがとう、ここはhttp://stackoverflow.com/questions/43956974/grand-center-dispatch-for-loopです – Elita

関連する問題