2017-05-11 10 views

Antwort

2

Sie didnt Umsetzung Ihrer Schokolade liefern, aber ich nehme an, es Struktur ist, in diesem Fall sind Sie nicht etwas zu ändern, weil in

DispatchQueue.main.asyncAfter(deadline: .now() + 3) { 
    var choclate = self.europeanChocolates.value[0] 
    choclate.countryName = "Denmark" 
} 

Ihre Schokolade aus europeanChocolates ist kopiert in neue var choclate, aber du speicherst sie nie. Sie können es leicht überprüfen, wenn Sie versuchen, diese

override func viewDidLoad() { 
    super.viewDidLoad() 
    title = "Chocolate!!!" 
    setupCellConfiguration() 
    europeanChocolates.value = Chocolate.ofEurope 
    europeanChocolates.asObservable().subscribe(onNext: { choco in 
     print("choco changed \(choco)") 
    }) 
    DispatchQueue.main.asyncAfter(deadline: .now() + 3) { 
     var choclate = self.europeanChocolates.value[0] 
     choclate.countryName = "Denmark" 
    } 

    } 

ich denke, es wird nicht gedruckt „choco geändert“. Wenn Im Recht sollte diese Ihnen helfen:

override func viewDidLoad() { 
    super.viewDidLoad() 
    title = "Chocolate!!!" 
    setupCellConfiguration() 
    europeanChocolates.value = Chocolate.ofEurope 
    DispatchQueue.main.asyncAfter(deadline: .now() + 3) { 
     var choclate = self.europeanChocolates.value[0] 
     choclate.countryName = "Denmark" 
     self.europeanChocolates.value[0] = choclate 
    } 

    } 

Wenn es nicht hilft, wenden Sie sich bitte Implementierung von Schokolade liefern und ChocolateCell

-3

Sie müssen das TableView sofort nach der Datenänderung neu laden. Nachzuladen dieses Tableview Aufruf:

this.tableView.reloadData() 
+0

Dies ist wenig vom Thema, weil Frage war über RxCocoa und Observablen, nicht wie Daten neu laden. – beretis

Verwandte Themen