Partage
  • Partager sur Facebook
  • Partager sur Twitter

Swift : Problème de compréhension sur les dates !?

Swift, Date

    29 juin 2019 à 22:18:34

    Bonsoir.

    Alors j'ai passé pas mal de temps à chercher sur le net comment extraire l'année d'une date en peu de lignes de code et modifier le titre de ma fenêtre en fonction.

    J'ai fini par trouver.

    Voilà ce qui fonctionne :

      // MARK: - viewDidAppear
      override func viewDidAppear() {
        super.viewDidAppear()
        let date = Date()
        let calendar = Calendar.current
        let year = String (calendar.component(.year, from: date))
        self.view.window?.title = "\(titleView) - \(year)"
      }
    

    Oui mais voilà.

    Dans mon application, je vais avoir besoin de manipuler les dates en année, en mois et/ou en jour.

    Pour ce faire, je ne vais pas réécrire 10 fois les mêmes lignes de code, je préfère donc créer une extension pour le type Date, et renvoyer ce dont j'ai besoin en fonction de la situation.

    Voici le code de l'extension :

    // MARK: - Extension dates
    extension Date {
      func year (_ date: Date) -> Int {
        // Retour de l'année
        let calendar = Calendar.current
        let year = Int (calendar.component (.year, from: date))
        print (year) // Juste pour vérifier, mais ça fonctionne dans la console
        return year
      }
    }

    Je n'ai pas d'erreur de compilation à ce stade.

    Je modifie donc mon premier code comme ceci :

      // MARK: - viewDidAppear
      override func viewDidAppear() {
        super.viewDidAppear()
    //    let date = Date()
    //    let calendar = Calendar.current
    //    let year = String (calendar.component(.year, from: date))
        let year = String (Date.year (Date ()))
        self.view.window?.title = "\(titleView) - \(year)"
      }
    

    Et là, le drame... Ça devient compliqué...

    J'ai le message d'erreur suivant : Initializer 'init(_:)' requires that 'Date() -> Int' conform to 'LosslessStringConvertible'
    Il est évident qu'il y a quelque chose qui m'échappe, et/ou que je n'ai pas compris... J'ai cherché sur le net, mais je ne comprends pas bien.

    Oui, ok, mais quoi ?

    Je dois dire que je suis sur la modification du titre de ma fenêtre depuis ce matin. Pas simple de perdre du temps comme ça.

    Bien à vous.

    G.

    • Partager sur Facebook
    • Partager sur Twitter

    Swift : Problème de compréhension sur les dates !?

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown