使用日期选择器时出错

时间:2014-05-08 09:20:22

标签: ios datepicker

应用程序在调用此函数时崩溃,在iPhone中如何工作正常,但在iPad中应用程序崩溃并说

注意:我正在使用ActionSheetDatePicker库

线程1:EXC_BAD_ACCESS(cod = 1,address = 0x9e ...)

当我调试时发现iPad中的selectedDate为零,但在iPhone中运行良好

#pragma mark - Implementation
- (void)dateWasSelected:(NSDate *)selectedDate element:(id)element {
//    self.selectedDate = selectedDate;

    //may have originated from textField or barButtonItem, use an IBOutlet instead of element

    //DATE TEXT FIELD HERE


    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"YYYY-MM-dd"];
    //Optionally for time zone converstions
    [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"..."]];
    NSString *stringFromDate = [formatter stringFromDate:selectedDate];
    self.textFieldBirthDate.text = stringFromDate ;
    birthDate = stringFromDate ;

    //"YYYY-MM-DD"  the birthdate format

}

1 个答案:

答案 0 :(得分:2)

你提供的git hub代码对我来说很好,我调试了代码。

当用户点击完成按钮(选择日期后)下面的代码将被执行。

- (void)notifyTarget:(id)target didSucceedWithAction:(SEL)action origin:(id)origin {

    if ([target respondsToSelector:action])

        objc_msgSend(target, action, self.selectedDate, origin);

    else

        NSAssert(NO, @"Invalid target/action ( %s / %s ) combination used for ActionSheetPicker", object_getClassName(target), (char *)action);

}

现在确保你获得self.selectedDate的价值,如果你没有得到,那么当你只是通过滚动选择一个日期时,请检查你是否得到了一个断点到下面的代码。

- (void)eventForDatePicker:(id)sender {

    if (!sender || ![sender isKindOfClass:[UIDatePicker class]])

        return;

    UIDatePicker *datePicker = (UIDatePicker *)sender;

    self.selectedDate = datePicker.date;

}

这些代码存在于文件

  

ActionSheetDatePicker.m

如果你在这里得到断点,那么请确保你保存日期。一旦你检查这个问题就会得到解决。

此致 阿尼尔