Meine Coredata-Relationship-Abrufanforderung gibt NSSet-Objekte zurück. Wie kann ich diese Daten für eine Tabellenansicht Datenquelle seit NSset in ungeordneten Set festlegen. Ich kann das NSSet in NSArray konvertieren, aber es wird die Daten in der gleichen Reihenfolge zurückgeben.Wie setze ich die UItableView-Datenquelle aus der CoreData-Beziehung.
0
A
Antwort
0
Apple is clear dass "Die Reihenfolge der Objekte im Array ist undefiniert." Ich würde also erwarten, dass sich das ändern könnte.
Ich würde empfehlen, dass Sie das Array allObjects
in eine Instanzvariable speichern und damit numberOfSectionsInTableView()
und die anderen Datenquellenmethoden implementieren.
Sie können auch Ihre NSFetchedResultsController
in einer Instanzvariablen speichern und sicher gerne nutzen:
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var rows = 0
if self.fetchedResultsController!.sections!.count > 0 {
let sectionInfo = getSectionInfo(section)
rows = sectionInfo!.numberOfObjects
}
return rows
}
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
let sectionInfo = getSectionInfo(section)
return sectionInfo!.name
}
func getSectionInfo(section: Int) -> NSFetchedResultsSectionInfo? {
var sections: [AnyObject] = self.fetchedResultsController!.sections!
if section < sections.count {
let x = sections[section] as! NSFetchedResultsSectionInfo
return x
}
return nil
}
override func tableView(tableView: UITableView, sectionForSectionIndexTitle title: String, atIndex index: Int) -> Int {
return self.fetchedResultsController!.sectionForSectionIndexTitle(title, atIndex: index)
}
override func sectionIndexTitlesForTableView(tableView: UITableView) -> [String]? {
return self.fetchedResultsController!.sectionIndexTitles
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("YourCellIdentifier")! as UITableViewCell
// Use your own NSManagedObject class here...mine is Category
let category = self.fetchedResultsController.objectAtIndexPath(indexPath) as! Category
return cell
}
Persönlich habe ich alle oben genannten Verfahren in einer Basisklasse codiert, dass ich wieder verwenden, so kann ich implementieren nur die cellForRowAtIndexPath()
in jeder neuen Tabellenansicht. Ich postete a copy on github für den Fall, dass es für jemand anderen nützlich sein könnte.
Verwandte Themen
- 1. Wie setze ich Autocomplete = "aus" in Vaadin
- 2. Wie setze ich die Schaltfläche unsichtbar android
- 3. Wie setze ich Enum von der Konfiguration
- 4. Wie setze ich UICollectionViewDelegateFlowLayout?
- 5. Wie setze ich die Textfarbe der Elemente in Spinner Android
- 6. Wie setze ich die Signatur einer Funktion?
- 7. Wie setze ich die Beendigungszeit in OptaPlanner
- 8. Wie setze ich Schriftarten in die Aktionsleiste?
- 9. Wie setze ich die GroupBox Titelfarbe
- 10. GridView: Wie setze ich die Anzahl der anzuzeigenden Zeilen?
- 11. Wie setze ich die Position der Maus in Java?
- 12. Wie setze ich die Vorgabewertaktivierung in der system.xml-aktiviertenMagento-Gruppe?
- 13. Wie setze ich Timer für die Berechnung der Ausführungszeit
- 14. Wie setze ich die Startseite in der Cordova App?
- 15. Wie setze ich die Anzahl der Ticks in plt.colorbar?
- 16. Wie setze ich die Höhe der SWT-Liste in Zeilen?
- 17. Wie setze ich die Genauigkeit der Rundung ein?
- 18. Wie setze ich Text in der Statusleiste?
- 19. Django Auswahlmöglichkeiten. Wie setze ich die Standardoption?
- 20. Wie setze ich die borderColor eines UITextFields?
- 21. Wie setze ich die Umgebungsvariable von Scala?
- 22. Wie setze ich die Schrittzahl von Android
- 23. Ich setze sbcl aus dem Debugger ein
- 24. Wie setze ich das selecteditem
- 25. Wie setze ich Bash-Umgebungsvariablen aus einem Skript?
- 26. Wie setze ich Iteratoren zusammen?
- 27. Wie setze ich ulimit -n aus einem Golang-Programm?
- 28. ember-cli Wie setze ich den Standardwert aus dem Formular?
- 29. Wie setze ich Text aus einem DialogFragment mit DatePickerDialog
- 30. Wie setze ich die Aktualisierungssteuerung für die Ansicht fort?
Danke für die Hilfe! Aber ich habe einen Zweifel, wird allobjects() -Methode das Array in der gleichen Reihenfolge zurückgeben, wie es NSSet hinzugefügt wurde. –
Ich habe den ersten Absatz hinzugefügt. 'allObjects()' order ist undefiniert, also würde ich erwarten, dass es sich ändern kann. – user212514