2016-08-08 34 views

回答

2

我发现这个干净的版本出来。这个想法是实现String和ErrorType协议并使用错误的rawValue。

enum UserValidationError: String, ErrorType { 
    case NoFirstNameProvided = "Please insert your first name." 
    case NoLastNameProvided = "Please insert your last name." 
    case NoAgeProvided = "Please insert your age." 
    case NoEmailProvided = "Please insert your email." 
} 

用法:

do { 
    try User.define(firstName, 
        lastName: lastName, 
        age: age, 
        email: email, 
        gender: gender, 
        location: location, 
        phone: phone) 
} 
catch let error as User.UserValidationError { 
    print(error.rawValue) 
    return 
}