Перечисление соответствует протоколу для свойства, которое имеет геттер и сеттер - PullRequest
0 голосов
/ 06 июня 2019

Есть ли ограничение для Enums, я не могу установить свойство протокола, реализованного Enum.

Я хочу сделать поле заголовков настраиваемым, разрешить установку заголовков.Я знаю, что у Enums есть только вычисленные свойства, это даже возможно.

protocol APIConfiguration : URLRequestConvertible {
    var method : HTTPMethod { get }
    var path : String { get }
    var parameters : Parameters? { get }
    var baseURL : String { get }
    var headers : [String : String]? { get set }
}

enum LoginEndpoint: APIConfiguration
{

    case login
    case user


    // MARK: - Base URL
    var baseURL : String
    {
        switch self
        {
        case .login, .user:
            return K.Graph.baseURI
        }
    }


    // MARK: - HTTPMethod
    var method : HTTPMethod
    {
        switch self
        {
        case .login:
            return .get
        case .user:
            return .get
        }
    }


    // MARK: - Path
    var path : String
    {
        switch self
        {
        case .login:
            return "/v1.0/me/"
        case .user:
            return "/user.read"
        }
    }


    // MARK: - Parameters
    var parameters : Parameters?
    {
        switch self
        {
        case .login:
            return nil
        case .user:
            return nil
        }
    }

    var headers : [String : String]?
    {
        get {
            if let sessionToken = SessionStore.shared.sessionToken
            {
                return [HTTPHeaderField.authentication.rawValue:sessionToken]
            }
            return nil
        }
        set {}
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...