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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Ospite
Rispondi a questa discussione...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Crea Nuovo...

Info

Per offrirti il miglior servizio possibile il sito utilizza cookies, anche di terze parti e profilazione. Utilizzando il sito acconsenti al loro impiego. Privacy Policy Termini di utilizzo