У меня чертовски много времени. У меня есть DatePicker настройки даты начала и окончания, как календарь Apple. Я не получаю сообщений, когда нажимаю на кнопку выбора даты несколько раз. Я предполагаю, что у меня утечка памяти, но я не могу ее найти. пожалуйста, помогите ... потому что мне нужно получить доступ к ним несколькими способами, я превратил свои UIDatePicker и NSDateFormatter в ivars. BOOL устанавливаются при нажатии кнопок, и все настроено на прием нескольких касаний в IB.
работает нормально, если на DatePicker нажимают только один, а иногда и два раза.
.h
IBOutlet UIDatePicker *datePicker;
NSDateFormatter *dateFormatter;
NSDateFormatter *timeFormatter;
@property (nonatomic, retain) UIDatePicker *datePicker;
@property (nonatomic, retain) NSDateFormatter *dateFormatter;
@property (nonatomic, retain) NSDateFormatter *timeFormatter;
.m
@synthesize datePicker;
@synthesize dateFormatter, timeFormatter;
viewDidLoad:
NSDate *now = [[NSDate alloc] init];
[datePicker setDate:now animated:NO];
//known bug - hopefully fixed in 4.3
//[datePicker setMinimumDate:now];
[now release];
self.dateFormatter = [[NSDateFormatter alloc] init];
[self.dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[self.dateFormatter setTimeStyle:NSDateFormatterNoStyle];
formattedDateStringDate = [self.dateFormatter stringFromDate:datePicker.date];
NSLog(@"initdate %@", formattedDateStringDate);
self.timeFormatter = [[NSDateFormatter alloc] init];
[self.timeFormatter setDateStyle:NSDateFormatterNoStyle];
[self.timeFormatter setTimeStyle:NSDateFormatterShortStyle];
formattedDateStringTime = [self.timeFormatter stringFromDate:datePicker.date];
NSLog(@"initTime %@", formattedDateStringTime);
valueDidChange:
- (IBAction)changeDateInLabel:(id)sender
{
formattedDateStringDate = [dateFormatter stringFromDate:datePicker.date];
//NSLog(@"date %@", formattedDateStringDate);
formattedDateStringTime = [timeFormatter stringFromDate:datePicker.date];
//NSLog(@"time %@", formattedDateStringTime);
if (isStartDateSet)
{
startDateLabel.text = formattedDateStringDate;
startTimeLabel.text = formattedDateStringTime;
newDate = formattedDateStringDate;
newStartTime = formattedDateStringTime;
}
if (isEndDateSet)
{
endTimeLabel.text = formattedDateStringTime;
newEndTime = formattedDateStringTime;
}
}
все три установлены на nil
в viewDidUnload
и все три выпущены в dealloc
.