Ä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

  • Ich hab es nochmal so abgeändert:

    C-Quellcode

    1. func loadDataFromDB() {
    2. let fetchRequest = NSFetchRequest(entityName: "Auftraggeber")
    3. do {
    4. // Execute Fetch Request
    5. try context.executeFetchRequest(fetchRequest) as! [Auftraggeber]
    6. tableView.reloadData()
    7. } catch {
    8. error as NSError
    9. print("Ups es ist ein Fehler aufgetreten!")
    10. }
    11. }
    Alles anzeigen
    weil Xcode gemeckert hat und nun scheint es zu laufen. Also beim Testen geht alles durch.
  • Ich hoffe deine Frage beantwortet sich hiermit, weil ich versuche zu verstehen aber so ganz wird das wohl nix mehr mit meinen 40 lenzen :D

    hier mal der ganze Code, nur jetzt tappe ich voll im Dunkeln denn es gibt mit sowas hier Optional("Mustermann"), Optional("Max") aus. ?(

    C-Quellcode

    1. import UIKit
    2. import CoreData
    3. class AuftragController: UITableViewController{
    4. var daten = [Auftraggeber]()
    5. let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
    6. override func viewDidLoad() {
    7. loadDataFromDB()
    8. }
    9. func loadDataFromDB() {
    10. let fetchRequest = NSFetchRequest(entityName: "Auftraggeber")
    11. do {
    12. try daten = context.executeFetchRequest(fetchRequest) as! [Auftraggeber]
    13. tableView.reloadData()
    14. } catch {
    15. error as NSError
    16. print("Ups es ist ein Fehler aufgetreten!")
    17. }
    18. }
    19. override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    20. return daten.count
    21. }
    22. override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    23. let cell = tableView.dequeueReusableCellWithIdentifier("Cell")! as UITableViewCell
    24. cell.textLabel!.text = "\(daten[indexPath.row].nachname), \(daten[indexPath.row].vorname)"
    25. return cell
    26. }
    27. @IBAction func addAuftragButtonPressed(sender: AnyObject) {
    28. let alert = UIAlertController(title: "Neuer Auftraggeber", message: "füge einen Auftraggeber hinzu", preferredStyle: .Alert)
    29. alert.addTextFieldWithConfigurationHandler() {
    30. textField in
    31. textField.placeholder = "Vorname"
    32. textField.becomeFirstResponder()
    33. }
    34. alert.addTextFieldWithConfigurationHandler() {
    35. textField in
    36. textField.placeholder = "Nachname"
    37. }
    38. alert.addAction(UIAlertAction(title: "Hinzufügen", style: .Default, handler: {
    39. action in
    40. //Auftraggeber
    41. let newAuftrag = NSEntityDescription.insertNewObjectForEntityForName("Auftraggeber", inManagedObjectContext: self.context) as! Auftraggeber
    42. newAuftrag.nachname = alert.textFields![1].text
    43. newAuftrag.vorname = alert.textFields![0].text
    44. do {
    45. try self.context.save()
    46. } catch let error {
    47. print("Could not cache the response \(error)")
    48. }
    49. self.loadDataFromDB()
    50. }))
    51. alert.addAction(UIAlertAction(title: "Abbrechen", style: .Cancel, handler: nil))
    52. presentViewController(alert, animated: true, completion: nil)
    53. }
    54. }
    Alles anzeigen
    weil Xcode gemeckert hat und nun scheint es zu laufen. Also beim Testen geht alles durch.
  • 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
    Jungspund :D


    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.
    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. ;)
    „Meine Komplikation hatte eine Komplikation.“
  • Michael schrieb:

    macmoonshine schrieb:

    Optionals sind mehr als ? oder !, sondern richtige Klassen.
    Nö, sind nur structs. ;)
    Nö, sind Enums! :D

    Vereinfacht sehen Optionals so aus:

    Quellcode

    1. enum Optional<T> {
    2. case none
    3. case some(T)
    4. }

    Siehe hier: github.com/apple/swift/blob/ma…ublic/core/Optional.swift
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • 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

    1. func createTask() {
    2. let entityDescripition = NSEntityDescription.entityForName("Project", inManagedObjectContext: managedObjectContext)
    3. let newProject = Project(entity: entityDescripition!, insertIntoManagedObjectContext: managedObjectContext)
    4. newProject.projectName = projectTextField.text!
    5. newProject.projectNumber = projectNumberTextField.text!
    6. newProject.creationDate = creationDateTextField.text!
    7. newProject.notes = notesTextField.text!
    8. let customerEntityDescripition = NSEntityDescription.entityForName("Customer", inManagedObjectContext: managedObjectContext)
    9. let newCustomer = Customer(entity: customerEntityDescripition!, insertIntoManagedObjectContext: managedObjectContext)
    10. newCustomer.setValue(NSSet(object: newProject), forKey: "project")
    11. do {
    12. try managedObjectContext.save()
    13. } catch _ {
    14. }
    15. }
    Alles anzeigen
    Danke schonmal für jegliche Hilfe. ich möchte gern das s das Project einem Customer zugeordnet wird.

    LG matze