Ich habe eine Profilklasse erstellt und versuche, dass dieser Viewcontroller Abrechnungsprofilobjekte aus den vom Benutzer bereitgestellten Informationen speichert und dann die Profile in der TableView in einer Liste unter einem vom Benutzer angegebenen Namen anzeigt. Ich habe dies mit Arrays versucht, aber ich habe beschlossen, dies zuzulassen, weil ein Wörterbuch vernünftiger erscheint, da ich den Profilnamen zum Schlüssel machen kann. Und haben Sie das in der Tabelle angezeigtSwift 3 Population TableView aus dem Wörterbuch?
Allerdings habe ich Probleme beim Bestücken der Tabelle mit den Profilen.
Jede Hilfe wäre wirklich sehr geschätzt und ich bin offen, irgendwelche Vorschläge zu versuchen. Ich werde ein Bild zur Verfügung stellen und den Code
var dictionary = [String:Profile]()
let profile1 = Profile()
profile1.firstNameB = firstNameBill
profile1.lastNameB = lastNameBill
profile1.emailB = emailBill
profile1.phoneB = phoneBill
profile1.address1B = address1Bill
profile1.address2B = address2Bill
profile1.zipB = zipBill
profile1.cityB = cityBill
profile1.firstNameS = firstNameShip
profile1.lastNameS = lastNameShip
profile1.phoneS = phoneShip
profile1.address1S = address1Ship
profile1.address2S = address2Ship
profile1.zipS = zipShip
profile1.cityS = cityShip
dictionary.updateValue(profile1, forKey: pName)
}
UPDATE: Noch ein bisschen verwirrt, ich eine neue Datei mit dem folgenden Code erstellt und diese immer bin.
class ProfileTable: NSViewController {
@IBOutlet weak var tableView: NSTableView!
var profiles: [String: Profile] = [:]
var indices: [String] = []
override func viewDidLoad() {
indices = profiles.keys.sorted()
}
}
extension ProfileTable: NSTableViewDataSource {
func tableView(_ tableView: NSTableView, numberOfRowsInSection section: Int) -> Int {
return indices.count
}
func tableView(_ tableView: NSTableView, cellForRowAt indexPath: IndexPath) -> NSTableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: MyCell.self), for: indexPath) as MyCell
cell.profile = profiles[indices[indexPath.row]]!
return cell
}
}
Tabellen zeigen geordnete Daten (d. H. Arrays) an. Wenn Ihre Daten im Wörterbuchformat vorliegen, müssen Sie sie irgendwie in ein Array konvertieren. Es ist naheliegend, die Wörterbucheinträge alphabetisch nach ihrem Schlüssel zu sortieren. –
Würden Sie mir vorschlagen, einfach zu Arrays zu wechseln? Oder würde es andere Wege geben, dies zu zeigen? Danke für die Antwort @NicolasMiari –
Nicht unbedingt. Sie müssen überlegen, welches Format für Ihre Daten am besten geeignet ist, und zwar auf der Grundlage Ihrer Verwendung in Ihrer gesamten App und nicht nur in der Tabellenansicht. –