Enum customizado em swift

Diego Crozare
1 min readMar 29, 2021

--

Enum como é mais comumente conhecido, basicamente uma abreviação para enumerações, sua descrição é bem exemplificada na documentação da Apple.

''Uma enumeração define um tipo comum para um grupo de valores relacionados e permite que você trabalhe com esses valores de uma maneira segura para o tipo em seu código.''

Enumerações suportam diversas funcionalidades que geralmente temos em nossas classes, são muito flexíveis e podemos resolver muitos problemas com seu uso. Mas o intuito desse tutorial não é abordar as funcionalidades e sim como customiza-lo afim de descrever, como podemos criar uma customização de nossos enums em nosso dia a dia.

Geralmente usamos valores brutos associados em nosso enums (String e Inteiros)

enum Region: String {case north, south, east, west}

Mas podemos ir muito mais além…

No Swift temos o protocolo RawRepresentable que transforma um tipo em outro associado, porém mantendo o valor original.

https://gist.github.com/diegocrozare/7ecee3d58ccd92255ce1cdf2c40d8ded#file-swift

No exemplo foi criado um enum de Enviroment, configurando um valor associado de EnviromentConfiguration e mantendo o valor original.

E poderíamos usa-lo dessa forma

let enviromentProd = Enviroment.production.rawValue
let enviromentDevelopment = Enviroment.development.rawValue

print(enviromentProd.baseUrl1) // https://service1.prod.com.br
print(enviromentDevelopment.baseUrl2) // https://service2.dev.com.br

Esse exemplo foi para um cenário especifico, mas da para ter uma ideia das possibilidades que o enum nos traz

--

--