Ios 如何检查我的pickerDate是否在Swift中旋转或停止?
我有一个pickerDate,如果我在旋转时尝试保存日期,我的应用程序会崩溃。但如果我等待停止旋转选择器,这将正确保存 我需要检查我的选择器是否停止或旋转以保存或等待未崩溃。或者停止。。我该怎么做Ios 如何检查我的pickerDate是否在Swift中旋转或停止?,ios,swift,uidatepicker,Ios,Swift,Uidatepicker,我有一个pickerDate,如果我在旋转时尝试保存日期,我的应用程序会崩溃。但如果我等待停止旋转选择器,这将正确保存 我需要检查我的选择器是否停止或旋转以保存或等待未崩溃。或者停止。。我该怎么做 datePicker.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged) @IBOutlet weak var datePicker: U
datePicker.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged)
@IBOutlet weak var datePicker: UIDatePicker!
var date = ""
var age: NSDate!
func handleDatePicker(sender: UIDatePicker) {
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"
age=sender.date
date = dateFormatter.stringFromDate(sender.date)
}
func calculateAge (birthday: NSDate) -> NSInteger {
var calendar : NSCalendar = NSCalendar.currentCalendar()
var now: NSDate = NSDate()
var dateComponentNow : NSDateComponents = calendar.components(NSCalendarUnit.CalendarUnitYear, fromDate: birthday, toDate: now, options: nil)
return dateComponentNow.year
}
@IBAction func okButton(sender: UIBarButtonItem) {
//code to calculate age and save this
var ageCalc = calculateAge(age) //Here crash
谢谢 您必须检查
(生日:NSDate)
是否可用。因此,只需检查零
func calculateAge (birthday: NSDate) -> NSInteger {
if (birthday != nil) {
var calendar : NSCalendar = NSCalendar.currentCalendar()
var now: NSDate = NSDate()
var dateComponentNow : NSDateComponents = calendar.components(NSCalendarUnit.CalendarUnitYear, fromDate: birthday, toDate: now, options: nil)
return dateComponentNow.year
}
return -1;
}
只需检查nil
日期,如果是,则返回-1
或NSIntegerMax
,以了解您尚未计算出正确的年龄
更新:if(生日!=nil)
或使用if-let
语法检查nil
如
func calculateAge (birthday: NSDate!) -> NSInteger {
if let thisBirthday = birthday {
var calendar : NSCalendar = NSCalendar.currentCalendar()
var now: NSDate = NSDate()
var dateComponentNow : NSDateComponents = calendar.components(NSCalendarUnit.CalendarUnitYear, fromDate: thisBirthday, toDate: now, options: nil)
return dateComponentNow.year
}
return -1;
}
请显示崩溃的代码,以及一些上下文(是什么触发了代码,代码在什么函数中,等等)。什么时候读取它的值?错误信息是什么?你用什么来解读你的价值观?什么触发了阅读?您是否使用
UIControlEventValueChanged
?我添加了代码,是的,我使用uicontrol事件。ValueChangedcalculateAge()
的代码是什么,以及handleDatePicker:
的代码是什么?您的calculateAge()方法中可能有bug。检查它只是评论。请您提供上述代码。您使用的是beta 6吗?如果生日{不符合'BooleanType'。(生日:NSDate!)正确,请尝试此项,thanks@user3745888您必须使用Swift.Updated中任何方便的方法检查无日期