Avatar ·

Quelle est la différence entre les fonctions/propriétés static et class en Swift ?

Bonjour à tous ! J'apprends Swift et je n'arrive pas à comprendre la différence entre les mots-clés `static` et `class` lorsqu'on déclare des fonctions ou des propriétés à l'intérieur d'une classe. Dans la documentation, il est écrit que les deux se réfèrent au type lui-même, et non à une instance, mais quelle est alors la différence ? Par exemple, j'ai ce code : ```swift class MyClass { static var staticProperty = "Propriété statique" class var classProperty: String { return "Propriété de classe" } static func staticMethod() { print("Méthode statique") } class func classMethod() { print("Méthode de classe") } } ``` Je vois que `static` et `class` permettent d'appeler des méthodes sans créer d'instance de la classe : `MyClass.staticMethod()` et `MyClass.classMethod()`. Mais pourquoi existe-t-il alors deux mots-clés différents ? Dans quels cas faut-il utiliser `static` et dans quels cas `class` ? Ce qui me perturbe particulièrement, c'est que dans les structures et les énumérations, on ne peut utiliser que `static`, alors que dans une classe...