Vai al contenuto


elvetico

[Risolto]Aiuto Con Xcode 8 Swift 3

Recommended Posts

Ciao a tutti 

come da titolo ho un problema con Swift 3

Sto provando a realizzare un app che,praticamente tramite un dataPicker scelgo una data e in una Label dovrebbe apparire cosi:  "10 mesi 23 giorni"

Il problema è che nella Label appare cosi :" Optional(10) mesi, Optional(23) giorni"

Non mi da nessun errore ne warning, dove sbaglio?

 

questo il codice:

 

 OperatorPicker.addTarget(self, action: #selector(ViewController.datePickerChanged(_OperatorPicker:)),

                                 for: UIControlEvents.valueChanged)

        

        totalLabel.alpha = 0

        setupDatePicker()

        

    }

 

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    

    func datePickerChanged(_OperatorPicker:UIDatePicker) {

        let currentDate = Date()

        let dateFormatter = DateFormatter()

        dateFormatter.dateFormat = "EEEE,MMM dd,yyyy"

        dateFormatter.locale = Locale(identifier: "it_IT")

        dateFormatter.locale = Locale.current

        dateFormatter.dateStyle = DateFormatter.Style.long

        

        let myDate = dateFormatter.string(from: OperatorPicker.date)

        myLabel.text = myDate

        

        

        let dateComponentsFormatter = DateComponentsFormatter()

        

        dateComponentsFormatter.unitsStyle = DateComponentsFormatter.UnitsStyle.full

        let numberDay = 0

        

        

        dateComponentsFormatter.allowedUnits = [NSCalendar.Unit.day]

        _ = dateComponentsFormatter.string(from: currentDate, to: OperatorPicker.date)

        

        var newDateComponents = DateComponents()

        newDateComponents.day = numberDay

        

        

        let diffDate = (Calendar.current as NSCalendar).components([NSCalendar.Unit.month, NSCalendar.Unit.day], from: currentDate, to: OperatorPicker.date, options: NSCalendar.Options.init(rawValue: 0))

        

        dateFormatter.dateFormat = "MM,dddd"

        let rawDate = dateFormatter.string(from: currentDate)

        totalLabel.text = rawDate.capitalized

        totalLabel.text = ("\(diffDate.month) mesi, \(diffDate.day) giorni")

        

        totalLabel.alpha = 1

    }

    func setupDatePicker() {

        OperatorPicker.setValue(UIColor.blue, forKey: "textColor")

        OperatorPicker.backgroundColor = UIColor.clear

    }

    

    }

 

Modificato da elvetico

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti


Ok ho fatto un po di ricerche ed ho scoperto che bastava mettere un ! in questo modo:

totalLabel.text = ("\(diffDate.month!) mesi, \(diffDate.day!) giorni")

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti alla nostra comunità. È facile!

Crea un nuovo account

Accedi

Sei già iscritto? Accedi qui.

Accedi Ora

  • Statistiche forum

    528865
    Discussioni Totali
    6332103
    Risposte Totali
  • Statistiche Utenti

    122006
    Utenti totali
    14120
    Record utenti online
    Giulia Maniaci
    Nuovo iscritto
    Giulia Maniaci
    Iscritto
  • Statistiche annunci

    105
    Annunci attivi
    17
    Domande
    0
    Recensioni
    0
    Offerte
    Ultimi Annunci
    By Francesco F
    mese e 1 giorno
×