2016-11-08 6 views
0

Ich habe heute Vormittag auf XCode 8 aktualisiert und entschied mich, meine Swift-Dateien in 2.3 anstelle von 3 zu konvertieren. Ich habe alle meine Kompilierungsprobleme gelöst, mit Ausnahme des folgenden Codes. Nur der MFMailComposeResultSent-Fall macht tatsächlich etwas Wichtiges. XCode sagt MFMailComposeResultSent und die anderen ähnlichen Fälle sind nicht aufgelöste Bezeichner. Die neueste Dokumentation zeigt, dass ich MFMailComposeResult.sent verwenden sollte, und die Auto-Suggest-Funktion bietet dies als eine Möglichkeit, aber es weigert sich auch zu kompilieren. Ich wäre dankbar für Informationen darüber, wie man diese Kompilierung für Swift 2.3 erstellt.MFMailComposeResult-Konstanten kompilieren nicht in Swift 2.3

Danke.

func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError?) { 
    switch result.rawValue { 
    case MFMailComposeResultCancelled.rawValue: 
     print("Mail canceled") 
    case MFMailComposeResultSaved.rawValue: 
     print("Mail saved") 
    case MFMailComposeResultSent.rawValue: 
     makeToast("Successfully sent email.", duration: 3) 
     print("Mail sent") 
    case MFMailComposeResultFailed.rawValue: 
     print("Mail sent failure: \(error!.localizedDescription)") 
    default: 
     break 
    } 
    hideActivityIndicator() 
    self.dismissViewControllerAnimated(true, completion: nil) 
} 

Antwort

1

Was ist mit der rawValue überall? Einfach die Fälle einschalten. Gefällt mir:

switch result { 
case .Cancelled: // something 
case .Saved: // something 
// .. and so on 
+0

Danke. Ich habe es tatsächlich mit den ".sent" und ".failed" versucht, die die Dokumentation zeigt, aber es hat nicht funktioniert, denke ich, weil diese Dokumentation für Swift 3 ist. Ihr Ansatz hat das Problem gelöst. –

+0

Nun, natürlich wirft das wiederum die Frage auf, warum in aller Welt Sie sich für eine veraltete Version von Swift entscheiden würden. Du hast die Dinge für dich selbst schwieriger gemacht. Warum? – matt

+0

Ich werde auf 3 umstellen, aber ich muss schrittweise vorgehen, da einige der früheren Versionskonvertierungen schwer genug waren, um einen ganzen Arbeitstag zu kosten, den ich mir im Moment nicht leisten kann. –

Verwandte Themen