2016-05-22 7 views
0

Ich arbeite in Swift 2.0 mit einer Enum, um einige Fehlermeldungen an den Benutzer zurückgeben, und ich benutze CustomStringConvertible-Protokoll.Wie löst man CustomStringConvertible Fehler in Swift 2.0?

Dies ist der Code, den ich habe:

enum Error: ErrorType { 
    case EmptyField 
    case PasswordDoNotMatch 
    case InvalidEmail 
    case UserCardIDTaken 
    case IncorrectSignIn 
    case InvalidPassword 
} 

extension Error: CustomStringConvertible{ 
    var decription : String { 
     switch self{ 
     case .EmptyField: return "Porfavor llene todos los campos" 
     case .PasswordDoNotMatch: return "La contraseña no coincide" 
     case .InvalidEmail: return "Porfavor entre un email valido" 
     case .UserCardIDTaken: return "La Cedula ya existe" 
     case .IncorrectSignIn: return "Email o Contraseña son incorrectos" 
     case .InvalidPassword: return "Las contraseñas no coinciden" 
     } 
    } 
} 

und ich bekomme die folgende Fehler: „Typ‚Fehler‘nicht entspricht Protokoll CustomStringConvertible“

Ich möchte wissen, warum das hapens.

+2

Typo: de ** s ** cription – vadian

+0

aaashh !! dank @vadian –

Antwort

0

Das Protokoll CustomStringConvertible erfordert eine GetTable-Variable namens description, aber Ihre Erklärung dafür ist falsch.

Angenommen, Sie eine berechnete Variable deklarieren wollen, sollten Sie tun

extension Error: CustomStringConvertible{ 
    var description : String { 
     get { 
      switch self { 
      case .EmptyField: return "Porfavor llene todos los campos" 
      case .PasswordDoNotMatch: return "La contraseña no coincide" 
      case .InvalidEmail: return "Porfavor entre un email valido" 
      case .UserCardIDTaken: return "La Cedula ya existe" 
      case .IncorrectSignIn: return "Email o Contraseña son incorrectos" 
      case .InvalidPassword: return "Las contraseñas no coinciden" 
      } 
     } 
    } 
} 
+1

Sie brauchen nicht die verschachtelte 'get' in da es für berechnete Eigenschaften optional ist. – Skyboat

+0

Wusste das nicht, danke für den Tipp –