Ich hab es nochmal so abgeändert:
Alles anzeigen
weil Xcode gemeckert hat und nun scheint es zu laufen. Also beim Testen geht alles durch.
Änderung von Swift 1.0 zu Swift 2.0
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
BTW: Solltest du das Ergebnis der Anfrage nicht irgendwie an den Tableviewcontroller übergeben?„Meine Komplikation hatte eine Komplikation.“
-
Ich hoffe deine Frage beantwortet sich hiermit, weil ich versuche zu verstehen aber so ganz wird das wohl nix mehr mit meinen 40 lenzen
hier mal der ganze Code, nur jetzt tappe ich voll im Dunkeln denn es gibt mit sowas hierOptional("Mustermann"), Optional("Max")
aus.
C-Quellcode
- import UIKit
- import CoreData
- class AuftragController: UITableViewController{
- var daten = [Auftraggeber]()
- let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
- override func viewDidLoad() {
- loadDataFromDB()
- }
- func loadDataFromDB() {
- let fetchRequest = NSFetchRequest(entityName: "Auftraggeber")
- do {
- try daten = context.executeFetchRequest(fetchRequest) as! [Auftraggeber]
- tableView.reloadData()
- } catch {
- error as NSError
- print("Ups es ist ein Fehler aufgetreten!")
- }
- }
- override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return daten.count
- }
- override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCellWithIdentifier("Cell")! as UITableViewCell
- cell.textLabel!.text = "\(daten[indexPath.row].nachname), \(daten[indexPath.row].vorname)"
- return cell
- }
- @IBAction func addAuftragButtonPressed(sender: AnyObject) {
- let alert = UIAlertController(title: "Neuer Auftraggeber", message: "füge einen Auftraggeber hinzu", preferredStyle: .Alert)
- alert.addTextFieldWithConfigurationHandler() {
- textField in
- textField.placeholder = "Vorname"
- textField.becomeFirstResponder()
- }
- alert.addTextFieldWithConfigurationHandler() {
- textField in
- textField.placeholder = "Nachname"
- }
- alert.addAction(UIAlertAction(title: "Hinzufügen", style: .Default, handler: {
- action in
- //Auftraggeber
- let newAuftrag = NSEntityDescription.insertNewObjectForEntityForName("Auftraggeber", inManagedObjectContext: self.context) as! Auftraggeber
- newAuftrag.nachname = alert.textFields![1].text
- newAuftrag.vorname = alert.textFields![0].text
- do {
- try self.context.save()
- } catch let error {
- print("Could not cache the response \(error)")
- }
- self.loadDataFromDB()
- }))
- alert.addAction(UIAlertAction(title: "Abbrechen", style: .Cancel, handler: nil))
- presentViewController(alert, animated: true, completion: nil)
- }
- }
-
gut auch das erledigt Ausrufezeichen vergessen.
-
matze511 schrieb:
Ich hoffe deine Frage beantwortet sich hiermit, weil ich versuche zu verstehen aber so ganz wird das wohl nix mehr mit meinen 40 lenzen
matze511 schrieb:
hier mal der ganze Code, nur jetzt tappe ich voll im Dunkeln denn es gibt mit sowas hier Optional("Mustermann"), Optional("Max") aus.
?
oder!
, sondern richtige Klassen. Wennnachname
ein Optional ist, dann gibt"\(daten[indexPath.row].nachname)"
ein Optional aus. Wenn du den Inhalt des Optionals ausgeben, musst du auspacken.„Meine Komplikation hatte eine Komplikation.“ -
matze511 schrieb:
Ich hoffe deine Frage beantwortet sich hiermit, weil ich versuche zu verstehen aber so ganz wird das wohl nix mehr mit meinen 40 lenzen
MattesDiese Seite bleibt aus technischen Gründen unbedruckt. -
macmoonshine schrieb:
Optionals sind mehr als ? oder !, sondern richtige Klassen. Wenn nachname ein Optional ist, dann gibt "\(daten[indexPath.row].nachname)" ein Optional aus. Wenn du den Inhalt des Optionals ausgeben, musst du auspacken.
-
macmoonshine schrieb:
Jungspund
swift
schon ja -
MyMattes schrieb:
Was soll das denn, hoffst Du auf Welpenschutz
lg matze -
macmoonshine schrieb:
Optionals sind mehr als ? oder !, sondern richtige Klassen.
-
Michael schrieb:
macmoonshine schrieb:
Optionals sind mehr als ? oder !, sondern richtige Klassen.
Vereinfacht sehen Optionals so aus:
Siehe hier: github.com/apple/swift/blob/ma…ublic/core/Optional.swiftDas iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!? -
Michael schrieb:
Nö, sind nur structs.
torquato schrieb:
Nö, sind Enums!
„Meine Komplikation hatte eine Komplikation.“ -
matze511 schrieb:
und genau das auspacken hatte er auch erklärt in dem Tutorial und ich hab es wieder verdrängt.....bitte nicht mit steinen werfen
„Meine Komplikation hatte eine Komplikation.“ -
torquato schrieb:
Michael schrieb:
macmoonshine schrieb:
Optionals sind mehr als ? oder !, sondern richtige Klassen.
-
Kann mir an dieser Stelle nochmal jemand weiter helfen bitte, ich finde keine richtige Erklärung wie das bei Swift 2.? nun geschrieben wird mit der
Relationship
für die Entitys.
C-Quellcode
- func createTask() {
- let entityDescripition = NSEntityDescription.entityForName("Project", inManagedObjectContext: managedObjectContext)
- let newProject = Project(entity: entityDescripition!, insertIntoManagedObjectContext: managedObjectContext)
- newProject.projectName = projectTextField.text!
- newProject.projectNumber = projectNumberTextField.text!
- newProject.creationDate = creationDateTextField.text!
- newProject.notes = notesTextField.text!
- let customerEntityDescripition = NSEntityDescription.entityForName("Customer", inManagedObjectContext: managedObjectContext)
- let newCustomer = Customer(entity: customerEntityDescripition!, insertIntoManagedObjectContext: managedObjectContext)
- newCustomer.setValue(NSSet(object: newProject), forKey: "project")
- do {
- try managedObjectContext.save()
- } catch _ {
- }
- }
LG matze