2017-03-16 5 views
0

Ich habe ein Problem bei der Verwendung von Reload-Daten, um mein UITableView zu aktualisieren.ReloadData aktualisiert die Liste nicht

Als eine schnelle Beschreibung: Diese Klasse erhielt eine NSNotification enthalten das Objekt mit Daten, die zur Liste hinzugefügt werden müssen und Gerät muss einmal vibrieren, die angeben, dass die Daten empfangen werden. Das Gerät selbst vibriert, aber die Liste wird nicht aktualisiert, sodass der Liste keine neuen Daten hinzugefügt werden.

-Code, wenn Benachrichtigung empfangen wird:

dispatch_async(dispatch_get_main_queue(), { 
       let object = notification.object as! Attendee 
       self.handshakesArray.append(object) 
       self.tableViewMain.reloadData() 
       AudioServicesPlayAlertSound(UInt32(kSystemSoundID_Vibrate)) 
      }) 

Ich weiß nicht, ob dies ist ein iOS Problem oder meine Implementierung ist falsch.

Edit:

class Shakes: UITableViewController { 
    private var handshakesArray = [Attendee]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    func executeTask(notification:NSNotification) { 
     dispatch_async(dispatch_get_main_queue(), { 
      let object = notification.object as! Attendee 
      self.handshakesArray.append(object) 
      self.tableViewMain.reloadData() 
      AudioServicesPlayAlertSound(UInt32(kSystemSoundID_Vibrate)) 
     }) 
    } 
    // ........ 
} 

Vielen Dank im Voraus

Antwort

0

Ich glaube, Sie nicht self.handshakesArray initialisiert haben. Bitte initialisieren von

var self.handshakesArray = [objectType]() 
+0

Ja ich meine Frage – Melchior

0

Stellen Sie sicher, Datenquelle und Delegierter für self.tableViewMain in Ihnen viewDidLoad func oder aus dem Storyboard setzen.

self.tableViewMain.delegate = self self.tableViewMain.dataSource = self

+0

Dank für Vorschlag bearbeiten @fahad Khan, aber immer noch dasselbe Ergebnis das Telefon vibrieren de aber kein Update – Melchior

+0

haben debuggen Sie den Code und überprüfen, ob die Array Zählung aktualisiert und auch prüfen, ob die TableView-Delegate-Funktionen werden aufgerufen oder nicht. –

+0

Ja, die Array-Anzahl wird aktualisiert, aber die 'cellForRowAtIndexPath'-Funktion wird nicht aufgerufen – Melchior

Verwandte Themen