2017-05-13 3 views
0

Ich möchte meinen Code nur ein wenig beschleunigen. Dies ist mein Code: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() 
    } 
} 

Ich loadedText aus der Datenbank geladen und ich bin Aktualisierung der Textansicht. Nach dem Aktualisieren der Textansicht ändere ich die Farbe jedes Buchstabens. Es funktioniert großartig. Aber jetzt möchte ich loadedText von der Datenbank laden, die Textfarbe ändern und dann die Textansicht aktualisieren. Kannst du mir helfen?

Antwort

1

die Gruppe Vergessen und die Reihenfolge

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

dank ändern, es funktioniert .. Ich brauche nur nach, dass meine Funktion zu ändern ... Ist es ok, wenn ich eine andere Frage hier fragen? Ich habe versucht, meine for-Schleife mit Grad-Center-Versand zu beschleunigen, aber irgendwann stürzt es .. weiß nicht, warum .. – Elita

+0

Bitte stellen Sie eine neue Frage. – vadian

+0

danke, hier ist es http://stackoverflow.com/questions/43956974/grand-center-dispatch-for-loop – Elita

Verwandte Themen