Ios 如何检查我的pickerDate是否在Swift中旋转或停止?

Ios 如何检查我的pickerDate是否在Swift中旋转或停止?,ios,swift,uidatepicker,Ios,Swift,Uidatepicker,我有一个pickerDate,如果我在旋转时尝试保存日期,我的应用程序会崩溃。但如果我等待停止旋转选择器,这将正确保存 我需要检查我的选择器是否停止或旋转以保存或等待未崩溃。或者停止。。我该怎么做 datePicker.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged) @IBOutlet weak var datePicker: U

我有一个pickerDate,如果我在旋转时尝试保存日期,我的应用程序会崩溃。但如果我等待停止旋转选择器,这将正确保存

我需要检查我的选择器是否停止或旋转以保存或等待未崩溃。或者停止。。我该怎么做

 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事件。ValueChanged
calculateAge()
的代码是什么,以及
handleDatePicker:
的代码是什么?您的calculateAge()方法中可能有bug。检查它只是评论。请您提供上述代码。您使用的是beta 6吗?如果生日{不符合'BooleanType'。(生日:NSDate!)正确,请尝试此项,thanks@user3745888您必须使用Swift.Updated中任何方便的方法检查无日期