mohamed
mohamed

Reputation: 253

error in using date picker

the application crashed when calling this function, how ever in iPhone it works fine , but in iPad the application crashes and say

note: i'm using ActionSheetDatePicker library

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

when i debug i found selectedDate is nil in iPad , but works fine in 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

}

Upvotes: 0

Views: 465

Answers (1)

IamAnil
IamAnil

Reputation: 496

The git hub code which you provided is working fine for me and I did debug the code.

When user Taps on done button (After selecting the date) below code will be executed.

- (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);

}

Now here make sure you are getting value for self.selectedDate , if you are not getting then please do check that you are getting a breakpoint to below code when you just select a date by scrolling.

- (void)eventForDatePicker:(id)sender {

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

        return;

    UIDatePicker *datePicker = (UIDatePicker *)sender;

    self.selectedDate = datePicker.date;

}

These codes are present in file

ActionSheetDatePicker.m

If you are getting the breakpoint here then make sure you are saving the date .Once you do check this the problem will be resolved.

Regards, Anil

Upvotes: 2

Related Questions