Nach dem Konvertieren (mein zuvor arbeiten) Code zu SWIFT 3
bekomme ich eine Fehlermeldung beim Versuch zu kompilieren und auszuführen:Der Konvertierungswert des Typs 'String' wird in 'Calendar.Identifier' Fehler nach dem Konvertieren von Swift 2 in Swift 3
Wert vom Typ 'String' zu erwarteten Argumenttyp den Abschnitt
Einfügen das Problem auftritt kann nicht 'Calendar.Identifier' konvertieren:
var calendar = Calendar(identifier: NSGregorianCalendar)
var birthday = calendar?.date(from: dateComponent)
var currentDate = Date()
Adn die ganze App/Code:
import UIKit
class ViewController: UIViewController, UITextFieldDelegate { //, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet weak var dayTextField: UITextField!
@IBOutlet weak var monthTextField: UITextField!
@IBOutlet weak var yearTextField: UITextField!
@IBOutlet weak var messageLabel: UILabel!
/*UI Picker data
var data = */
func textFieldDidBeginEditing(textField: UITextField) {
let datePicker = UIDatePicker()
textField.inputView = datePicker
} */
override func viewDidLoad() {
super.viewDidLoad()
dayTextField.delegate = self //dopisujemy delegate i u góry uitextfielddelegate
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.dismissKeyboard))
view.addGestureRecognizer(tap)
}
//Calls this function when the tap is recognized.
func dismissKeyboard() {
//Causes the view (or one of its embedded text fields) to resign the first responder status.
view.endEditing(true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func buttonPressed(_ sender: UIButton) {
messageLabel.text = "Udało się!"
var dateComponent = DateComponents()
dateComponent.day = Int(dayTextField.text!)! //1
dateComponent.month = Int(monthTextField.text!)! //1
dateComponent.year = Int(yearTextField.text!)! //2000
//TextField - zamykanie klawiatury po nacisnieciu na ekran poza klawą
var calendar = Calendar(identifier: NSGregorianCalendar)
var birthday = calendar?.date(from: dateComponent)
var currentDate = Date()
//obie następne rzeczy printowane sa w konsoli XCode po naciśnieciu przycisku w aplikcaji
print(birthday)
print("Current Date is \(currentDate)")
//sumowanie
var datesDuration = (calendar as NSCalendar?)?.components(NSCalendar.Unit.day,
from: birthday!,
to: currentDate, options: [])
//poniżej ! oznacza, iż nie jest to optional tylko na pewno var. Gdyby zostało ?, przy wyniku pojawił by nam się w aplikacji "otpional".
var daysTogether = datesDuration!.day
/*dodamy bajery aby było bardziej ładnie
var numberFormatter = NSNumberFormatter()
numberFormatter.usesGroupingSeparator = true
var dayString = numberFormatter.stringFromNumber(daysTogether) */
//wynik koncowy
messageLabel.text = "Dni w związku: \(daysTogether) !! "
}
/*UIPicker nieskonczony
@available(iOS 2.0, *)
public func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
}
@available(iOS 2.0, *)
public func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
} */
}
: Schreibe: - 'var Kalender = Kalender (Kennung: .gregorian)' & Study diesem [link] (https://developer.apple.com/reference/foundation/nscalendar/1412400-init) – pkc456