2016-08-08 38 views
-2

Ich bin JSON Zeichenfolge Wert auf UILabel mit Dispatch_async-Methode. Aber es kann keinen aktualisierten Wert anzeigen, aber wenn ich Etikettentexte drucke, wird der aktualisierte Wert angezeigt. hier ist mein Code-Unable Update UILable mit dispatch_async in Swift iOS

dispatch_async(dispatch_get_main_queue(), { 

        self.extract_json(data!) 
       }) 

func extract_json(jsonData:NSData) 
{ 
    let json: AnyObject? 
    do { 
     json = try NSJSONSerialization.JSONObjectWithData(jsonData, options: []) 
     print("full data \(json!)") 
    } catch { 
     json = nil 
     return 
    } 
    let user_object = json!["opportunity_master"] as! NSArray 
    let data_block = user_object[0] as? NSDictionary 
    self.opp_title = (data_block!["opportunity_title"] as? String)! 

     print(self.opp_title) 

     <-- **here I am updating UILabel**--> 

     self.Event_title.text = self.opp_title 
     self.Event_title.setNeedsDisplay() 

     print("event title label \(self.Event_title.text)") 
} 

Ich kann keinen Aktualisierungswert, bitte eine andere Methode vorschlagen zu implementieren. Danke

+0

Wenn die unten genannten Antworten nicht arbeiten, Ihr Etikett falsch Rahmen Einstellung werden müssen oder die Zeichenfolge leer ist, versuchen, das Etikett Hintergrundfarbe und sicher sein dort machen und mit einigen zufälligen Zeichenfolge zeigt – Tj3n

+0

Welche Funktion ist Ihr Versand asynchronen Anruf? – WMios

Antwort

0

Während Sie die Beschriftungstext dieses aktualisieren verwenden: -

dispatch_async(dispatch_get_main_queue(), { 

self.Event_title.text = self.opp_title 
self.Event_title.setNeedsDisplay() 

}) 
+0

es funktioniert nicht ..! – sachin

+0

Probieren Sie es einfach aus und lassen Sie mich wissen self.Event_title.text = "\ (self.opp_title)" – Blisskarthik

+0

Bitte schlagen Sie mir vor, es gibt eine andere Methode, um dieses Problem zu lösen – sachin

0

diesen Code Versuchen Sie, sollte es funktionieren.

self.extract_json(data!) 

func extract_json(jsonData:NSData) 
{ 
    let json: AnyObject? 
    do { 
     json = try NSJSONSerialization.JSONObjectWithData(jsonData, options: []) 
     print("full data \(json!)") 
    } catch { 
     json = nil 
     return 
    } 
    let user_object = json!["opportunity_master"] as! NSArray 
    let data_block = user_object[0] as? NSDictionary 
    self.opp_title = (data_block!["opportunity_title"] as? String)! 

    print(self.opp_title) 

     <-- **here I am updating UILabel**--> 

    dispatch_async(dispatch_get_main_queue(), { 

     self.Event_title.text = self.opp_title 
     self.Event_title.setNeedsDisplay() 

    }) 

    print("event title label \(self.Event_title.text)") 
} 
+0

funktioniert nicht ..! – sachin

+0

schlagen Sie bitte irgendeine andere Methode vor, um UIable zu aktualisieren ..? – sachin