Avatar ·

Funciones y variables static vs class en clases de Swift: ¿cuál es la diferencia?

¡Hola a todos! Empecé a estudiar Swift y me topé con un tema que no entiendo. En las clases se pueden declarar funciones y variables como static y también como class. Parece que ambas palabras clave funcionan de manera similar: permiten llamar métodos y obtener propiedades sin crear una instancia de la clase. Por ejemplo: ```swift class MyClass { static var staticProperty = "Propiedad estática" class var classProperty: String { return "Propiedad de clase" } static func staticMethod() { print("Método estático") } class func classMethod() { print("Método de clase") } } MyClass.staticMethod() // funciona MyClass.classMethod() // también funciona ``` Pero noté que si intento sobrescribir un método `static` en una subclase, Xcode se queja, mientras que un método `class` se sobrescribe sin problemas. ¿Por qué ocurre esto? ¿Y qué es mejor usar en general? ¿Hay casos en los que `static` es preferible y otros en los que `class`? Explíquenmelo, por favor, de manera sencilla. Gracias de antemano.