This question already has answers here:
Calculate age from birth date
(4个答案)
7个月前关闭。
我正在尝试编写一个代码,从分配给文本字段的日期选择器计算年龄。我得到了正确的日期很好,它通过了打印测试。但是,在尝试使dateComponents工作时,出现了“对成员dateComponents(:from:to:)”的不明确引用”错误。--这与一个stackoverflow通知我的代码不同,我正试图使用datepicker到达那里。--
我在网上到处寻找解决方案,但我似乎过不了这一关。你能帮忙吗?
-完全初学者
(4个答案)
7个月前关闭。
我正在尝试编写一个代码,从分配给文本字段的日期选择器计算年龄。我得到了正确的日期很好,它通过了打印测试。但是,在尝试使dateComponents工作时,出现了“对成员dateComponents(:from:to:)”的不明确引用”错误。--这与一个stackoverflow通知我的代码不同,我正试图使用datepicker到达那里。--
我在网上到处寻找解决方案,但我似乎过不了这一关。你能帮忙吗?
-完全初学者
@objc func dateChanged(datePicker: UIDatePicker) {
let myCalendar = Calendar(identifier: .gregorian)
let dmy = myCalendar.dateComponents([.day, .month, .year], from: Date())
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
inputTextField.text = dateFormatter.string(from: datePicker.date)
let birthdayDate = dateFormatter.string(from: datePicker.date)
print(birthdayDate)
let now = NSDate()
let ageComponents = myCalendar.dateComponents(.year, from: birthdayDate, to: now) //Ambiguous reference to member 'dateComponents(_:from:to:)'
let age = ageComponents.year!
label.text = age
view.endEditing(true)
}
最佳答案
你的代码有一些问题
您应该在Swift中使用Date
,而不是NSDate
birthdayDate
是一个String
,但是from:
参数需要是Date
的一个实例
组件参数需要是一个集合。
纠正这些问题可以:
@objc func dateChanged(datePicker: UIDatePicker) {
let birthdayDate = datePicker.date
let myCalendar = Calendar(identifier: .gregorian)
let dmy = myCalendar.dateComponents([.day, .month, .year], from: Date())
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
inputTextField.text = dateFormatter.string(from: birthdayDate)
let now = Date()
let ageComponents = myCalendar.dateComponents([.year], from: birthdayDate, to: now)
let age = ageComponents.year!
label.text = "\(age)"
view.endEditing(true)
}
关于ios - 计算年龄:DateComponents上对成员的含糊引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55782320/
10-10 21:33