Hallo zusammen,
ich habe es ENDLICH geschafft, in macOS mit CoreData zu arbeiten.
Habe nun einen ViewController, welcher einen TableView, zwei Textfelder und einen Button (Save) hat.
Textfeld 1 = Vorname
Textfeld 2 = Nachname
Button (Save) = Eintrag CoreData
TableView = Anzeige Einträge CoreData
Anbei mein Code und ein Screenshot der CoreData Einstellungen
Bildschirmfoto 2017-04-30 um 16.30.50.png
Code:
Alles anzeigen
Allerdings stört mich die Verwendung meiner variable "content".
Wie man sehen kann, füge ich Vorname und Nachname nacheinander in diese Variable.
Ausgabe wie folgt:
["Max","Mustermann","Max2", "Mustermann2"] usw
Das dies nicht elegant ist weiß ich, allerdings habe ich keinen Schimmer wie ich das lösen kann.
Könnte ihr mir aus der Patsche helfen ?
ich habe es ENDLICH geschafft, in macOS mit CoreData zu arbeiten.
Habe nun einen ViewController, welcher einen TableView, zwei Textfelder und einen Button (Save) hat.
Textfeld 1 = Vorname
Textfeld 2 = Nachname
Button (Save) = Eintrag CoreData
TableView = Anzeige Einträge CoreData
Anbei mein Code und ein Screenshot der CoreData Einstellungen
Bildschirmfoto 2017-04-30 um 16.30.50.png
Code:
Quellcode
- import Cocoa
- class ViewController: NSViewController, NSTableViewDataSource, NSTableViewDelegate {
- @IBOutlet weak var txtVorname: NSTextField!
- @IBOutlet weak var txtNachname: NSTextField!
- var content = [String]()
- func RequestData() {
- let appdelegate = NSApplication.shared().delegate as! AppDelegate
- let context = appdelegate.persistentContainer.viewContext
- let request = NSFetchRequest<NSFetchRequestResult>(entityName: "User")
- request.returnsObjectsAsFaults = false
- do {
- let results = try context.fetch(request)
- if results.count > 0 {
- for result in results {
- if let vorname = (result as AnyObject).value(forKey: "vorname") as? String {
- content.append(vorname)
- }
- if let nachname = (result as AnyObject).value(forKey: "nachname") as? String {
- content.append(nachname)
- }
- }
- }
- } catch {}
- }
- func numberOfRows(in tableView: NSTableView) -> Int {
- return content.count
- }
- func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
- return content[row]
- }
- @IBAction func SaveUser(_ sender: Any) {
- let appdelegate = NSApplication.shared().delegate as! AppDelegate
- let context = appdelegate.persistentContainer.viewContext
- let newUser = NSEntityDescription.insertNewObject(forEntityName: "User", into: context)
- newUser.setValue(txtVorname.stringValue, forKey: "vorname")
- newUser.setValue(txtNachname.stringValue, forKey: "nachname")
- do {
- try context.save()
- } catch {}
- }
- }
Allerdings stört mich die Verwendung meiner variable "content".
Wie man sehen kann, füge ich Vorname und Nachname nacheinander in diese Variable.
Ausgabe wie folgt:
["Max","Mustermann","Max2", "Mustermann2"] usw
Das dies nicht elegant ist weiß ich, allerdings habe ich keinen Schimmer wie ich das lösen kann.
Könnte ihr mir aus der Patsche helfen ?