Я пытаюсь сделать простую сигнализацию.сравнение сигнализации и даты
в этой части кода a взять дату из сборщика (ТОЛЬКО таймер).
и если будильник является текущей датой, прежде чем я добавлю день.
// ALARM UNO
// Set Allarme Uno
-(void)viewDidAppear:(BOOL)animated{
NSDate *pickerDate = [NSDate date];
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
// Break the date up into components
NSDateComponents *dateComponents = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)
fromDate:pickerDate];
NSDateComponents *timeComponents = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit)
fromDate:pickerDate];
// Set up the fire time
NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setDay:[dateComponents day]];
[dateComps setMonth:[dateComponents month]];
[dateComps setYear:[dateComponents year]];
[dateComps setHour:[timeComponents hour]];
//Notification will fire in one minute
[dateComps setMinute:[timeComponents minute]];
[dateComps setSecond:0];
NSDate *itemDate = [calendar dateFromComponents:dateComps];
[dateComps release];
[alarmDatePickerUno setDate:itemDate animated:YES];
}
-(IBAction)setAlarmUno:(id)sender{
NSLog(@"picker in allarme");
NSDateFormatter *formatter =
[[[NSDateFormatter alloc] init] autorelease];
[formatter setTimeStyle:NSDateFormatterMediumStyle];
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
AlarmDateUno = [alarmDatePickerUno date];
NSLog(@"allarme settata alle");
NSLog(@"%@", AlarmDateUno);
if ([alarmDatePickerUno.date compare:[NSDate date]] == NSOrderedAscending)
{
NSLog(@"Date is not valid");
NSDateComponents *oneDay = [[NSDateComponents alloc] init];
[oneDay setDay:1];
NSLog(@"Aggiungo un giorno");
AlarmDateUno = [currentCalendar dateByAddingComponents:oneDay toDate:AlarmDateUno options:0];
NSLog(@"%@", AlarmDateUno);
//return;
}
После этого я сравнить текущую дату с сигнализацией ...
// CONTROLLO TEMPO UNO
- (void)runTimerUno {
myTickerUno = [NSTimer scheduledTimerWithTimeInterval: 0.5
target: self
selector: @selector(showActivityUno)
userInfo: nil
repeats: YES];
}
- (void)showActivityUno {
// NSDate *date = [NSDate date];
if(isAlarmUnoOn == 1 && AlarmUnoPlaying ==0){
NSLog(@"Confronto data e tempo");
if ([[[NSDate date] earlierDate:AlarmDateUno] isEqualToDate: AlarmDateUno])
{
AlarmUnoPlaying = 1;
[self playAlarmSoundUno];
}
}
}
Это проблема в дате в представлении захватывающего было до текущего времени и я добавляю часов я получаю EXC_BAD_ACCESS ошибка в строке:
if ([[[NSDate date] earlierDate:AlarmDateUno] isEqualToDate: AlarmDateUno])
зомби говорят мне [__NSDate timeIntervalSinceReferenceDate]: сообщение, отправленное высвобождены например 0x914b710
Я пробую все, и я не понимаю, почему ... кто-нибудь может мне помочь?
«нужно сохранить», это я забыл .... глупое глупое мне .... спасибо – Acunamatata
Конечно, я хочу дать вам верх, но у меня нет имён репутации для этого ... i toooo young .. . :( – Acunamatata
Не волнуйся, я возвращаюсь ... – Acunamatata