Swift枚举关联值

5

我有一个API,其中包含路径和之后的整数。

例如,/get/news/{id}.

对于路径端点,我有以下枚举:

enum Endpoints : String {

case news = "news"
}

有没有一种方便的方式来使用相关值呢?
类似这样的东西:
case newsById(id: String) = "get/news/" + id
3个回答

6
您可以使用以下内容:
enum APIEndpoints {
    case news(id: Int)

    var path: String {
        switch self {
        case let .news(id):
            return "/get/news/\(id)"
        }
    }
}

And use it like: APIEndpoints.news(id: 5).path


3

您可以随时向枚举添加一个函数来获取URI:

enum Endpoints : String {
    case news = "news"

    func getUri(id: string) -> String {
        return "get/\(self.rawValue)/\(id)"
    }
}

1
你可以尝试这个:

你可以尝试这个:

enum Endpoints: String {
   case news

   func getNewsByStringId() -> String {
     return "get/news/\(self.rawValue)"
   }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接