Avatar ·

Funções e variáveis Static vs class em classes Swift: qual a diferença?

Olá a todos! Comecei a estudar Swift e me deparei com um tópico que não entendi. Em classes, podemos declarar funções e variáveis como static e também como class. Aparentemente, ambas as palavras-chave funcionam de forma semelhante: permitem chamar métodos e acessar propriedades sem criar uma instância da classe. Por exemplo: ```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") } } MyClass.staticMethod() // funciona MyClass.classMethod() // também funciona ``` Mas notei que, se tento sobrescrever um método `static` em uma subclasse, o Xcode reclama, enquanto um método `class` pode ser sobrescrito sem problemas. Por que isso? E o que é melhor usar? Existem casos em que `static` é preferível, e outros em que `class` é melhor? Expliquem, por favor, de forma simples. Agradeço desde já.