Avatar ·

Qual é a diferença entre funções/propriedades static e class em Swift?

Olá a todos! Estou aprendendo Swift e não consigo entender a diferença entre as palavras-chave `static` e `class` quando declaramos funções ou propriedades dentro de uma classe. Na documentação diz que ambas se referem ao próprio tipo, não à instância, mas qual é a diferença então? Por exemplo, eu tenho este código: ```swift class MyClass { static var staticProperty = "Propriedade estática" class var classProperty: String { return "Propriedade de classe" } static func staticMethod() { print("Método estático") } class func classMethod() { print("Método de classe") } } ``` Eu vejo que tanto `static` quanto `class` permitem chamar métodos sem criar uma instância da classe: `MyClass.staticMethod()` e `MyClass.classMethod()`. Mas por que existem duas palavras-chave diferentes? Em quais casos devo usar `static` e em quais devo usar `class`? O que me confunde especialmente é que em structs e enums só podemos usar `static`, mas em class