Ich ziehe Daten aus CloudKit, und es gibt nur ein Element in den Daten.App-Absturz bei Tabellenzeile Laden
Sobald die matchup
Lasten und vor die Hintergrundfarbe in der Benutzeroberfläche zu sehen ist, die App stürzen. Ich kann nicht verstehen warum, irgendwelche Ideen?
InterfaceController
auf Watch:
func loadTable() {
self.rowTable.setNumberOfRows(self.matchupArray.count, withRowType: "rows")
let rowCount = self.rowTable.numberOfRows
for i in 0...rowCount {
let row = self.rowTable.rowController(at: i) as! Rows!
row?.matchup.setText(self.matchupArray[i])
let colorBackground = UIColor.init(hex: self.teamColorArray[i])
row?.groupColor.setBackgroundColor(colorBackground)
}
}
func getData() {
cloud.getCloudKit { (game: [GameWatch]) in
var teamColorArray = [String]()
var matchupArray = [String]()
for item in game {
teamColorArray.append(item.teamColor)
matchupArray.append(item.matchup)
}
self.teamColorArray = teamColorArray
self.matchupArray = matchupArray
self.loadTable()
}
}
UPDATE:
einen Absturz kam, mit dem Fehler "fatale Fehler: Index out of range".
Ich bin mir nicht sicher, warum dies ist, weil die matchupArray.count
1 ist, die rowCount
ist 1. Es begann die for-loop
Iterieren durch mit i
als 0 und beendete die erste Iteration, wo sie aufgehört haben sollte, da nur dort war 1 Artikel. Aber ich habe den Absturz, weil es begann, die Schleife erneut zu durchlaufen, mit i
als 1, und dann offensichtlich nichts gefunden, so dass es abgestürzt ist.
Der Absturz kommt, nachdem row?.matchup.setText(self.matchupArray[i])
ausgeführt wird.
, wenn Sie diese Zeile tun .groupColor.setBackgroundColor (colorbackground) auf app Hintergrund-Thread –
@KuntalGajjar Dank für die Antwort abstürzen könnte?! Hmm, das könnte es sein, sieht es so aus als wäre ich auf einem Hintergrund-Thread? Ich frage mich nur, weil es nicht so aussieht, als ob ich auf einen Hintergrund-Thread für 'getCloudKit' hoppe, aber vielleicht fehlt mir etwas, das jemand wie du schneller sehen könnte als ich. – SRMR
können Sie versuchen, dies self.performSelectorOnMainThread (#selector (CLASSNAME. LoadTable), withObject: nil, waitUntilDone: true) –