2016-10-30 5 views
3

Ich habe einige von diesen um stackoverflow gesehen, aber keiner von ihnen löst mein Problem. Ich habe versucht, die abgeleiteten Daten zu löschen, die Funktion neu zu tippen und eine Reinigung durchzuführen. Das einzige, was funktioniert, ist den Code zu kommentieren, aber ich brauche den Code für meine App. Der Fehler trat nicht auf, bis ich zu Xcode aktualisiert 8 und meinen Code Swift 3.Befehl fehlgeschlagen wegen Signal: Segmentierungsfehler: 11 nach dem Upgrade auf Xcode 8 und Swift 3

1. While emitting IR SIL function @_TFFC13RLA_Volunteer8TeamsTVC18addBarButtonTappedFT6senderCSo15UIBarButtonItem_T_U0_FCSo13UIAlertActionT_ for expression at [/Volumes/.../Developer/RLA/RLA-Volunteer/RLA Volunteer/TeamsTVC.swift:91:89 - line:109:9] RangeText="{ (action) in 
      if let team = alertController.textFields?[0].text { 
       if team.characters.count == 0 { 
        let errorAlertController = UIAlertController(title: "Add a team", message: nil, preferredStyle: .alert) 
        self.present(errorAlertController, animated: true, completion: nil) 
        return 
       } 
       let teamItem = Team(teamName: team) 
       let teamsRef = self.ref.child("teams") 
       teamsRef.child(team.lowercased()).setValue(teamItem.toDictionary, withCompletionBlock: { (error, success) -> Void in 
        if error != nil { 
         print("Error: \(error!.localizedDescription)") 
        } 
        else { 
         print("Data saved!") 
        } 
       }) 
      } 
     }" 

Die gesamte Funktion wie folgt aussieht:

@IBAction func addBarButtonTapped(sender: UIBarButtonItem) { 
     // add teams to list 
     let alertController = UIAlertController(title: "Add Team", message: nil, preferredStyle: .alert) 
     alertController.addTextField { (textField) in 
      textField.placeholder = "Team" 
     } 
     alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil)) 
     alertController.addAction(UIAlertAction(title: "Add", style: .default, handler: { (action) in 
      if let team = alertController.textFields?[0].text { 
       if team.characters.count == 0 { 
        let errorAlertController = UIAlertController(title: "Add a team", message: nil, preferredStyle: .alert) 
        self.present(errorAlertController, animated: true, completion: nil) 
        return 
       } 
       let teamItem = Team(teamName: team) 
       let teamsRef = self.ref.child("teams") 
       teamsRef.child(team.lowercased()).setValue(teamItem.toDictionary, withCompletionBlock: { (error, success) -> Void in 
        if error != nil { 
         print("Error: \(error!.localizedDescription)") 
        } 
        else { 
         print("Data saved!") 
        } 
       }) 
      } 
     })) 
     present(alertController, animated: true, completion: nil) 
    } 
+0

In welcher Zeile ist das Problem? – matt

+0

Der Fehler sagt seinen ganzen Bereich des Textes, den ich in den ersten Block setzte. "zum Ausdruck in [/Volumes/.../Developer/RLA/RLA-Volunteer/RLA Volunteer/TeamsTVC.swift: 91: 89 - line: 109: 9]" –

+0

Richtig, aber die Idee ist es, mehr auszumerken und mehr, bis Sie die tatsächliche Ursache des Problems finden. "Binäre Suche", weißt du nicht. – matt

Antwort

1

Für teamItem.toDictionary, versuchen teamItem.toDictionary as Any setzen.

+0

Warum hat das funktioniert? –

+0

Es ist ein Fehler und wir haben daran gearbeitet. :) – matt

Verwandte Themen