1
我試圖做一個簡單的報警。報警和日期比較
在此代碼部分a從pickerdate(唯一時間選擇器)中獲取日期。
並且如果警報是我添加一天之前的當前日期。
// 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 2012-03-27 06:33:36
當然,我想給你一個upvote,但我沒有theminimun聲譽...我toooo年輕.. :( – Acunamatata 2012-03-27 14:02:50
別擔心男人,我回來... – Acunamatata 2012-03-27 14:26:43