2012-03-24 3 views
0

К сожалению, Google Translate грим ошибку, чтобы многие ошибки,Test нужное время в тревоге

я хочу сделать тревогу в Xcode, но я пр проблему, Everythings работать нормально, если я использую вид сборщика с указанием даты и времени, но если я переключу представление сборщика в один раз с единственным временем, невозможно установить будильник, потому что, если я установил будильник одновременно,

как я могу это сделать для решения без использования вида выбора с датой ?

Это действие, которое устанавливает будильник.

PS извините за сообщение предварительные просмотры возможно мой английский лучше, чем Google Translate ...

// Set Allarm Uno 

-(IBAction)setAlarmUno:(id)sender{ 

NSLog(@"In Alarm Date"); 
NSDateFormatter *formatter = 
[[[NSDateFormatter alloc] init] autorelease]; 
NSLog(@"About to Set Date"); 
AlarmDateUno = [alarmDatePickerUno date]; 
[formatter setTimeStyle:NSDateFormatterShortStyle]; 
isAlarmUnoOn = 1; 


// Setta la label della data con l'orario 

NSString *notifyTime = [[NSString alloc]initWithString:[formatter stringFromDate:AlarmDateUno]]; 
NSMutableString *alarmString = [[NSMutableString alloc]initWithString:@""]; 
NSString *temp = [[NSString alloc] initWithString:[formatter stringFromDate:AlarmDateUno]]; 
[alarmString appendString:temp]; 
[LabelalarmUno setText:alarmString]; 


    if(clicked == 0) 
     {    
      clicked =1; 
      [btOnOffUno setImage:[UIImage imageNamed:@"OnBtn.png"] forState:UIControlStateNormal]; 
       bellOne.hidden = NO; 

      } 

    else 
     { 
      clicked = 0; 
      [btOnOffUno setImage:[UIImage imageNamed:@"OffBtn.png"] forState:UIControlStateNormal]; 
       bellOne.hidden = YES; 
       isAlarmUnoOn = 0; 

Для Объединив время после настройки тревоги используйте:

// CONTROLLO TEMPO UNO 

    - (void)runTimerUno { 

      myTickerUno = [NSTimer scheduledTimerWithTimeInterval: 0.5 
              target: self 
              selector: @selector(showActivityUno) 
              userInfo: nil 
              repeats: YES]; 

    } 

    - (void)showActivityUno { 
    NSDateFormatter *formatter = 
     [[[NSDateFormatter alloc] init] autorelease]; 
NSDate *date = [NSDate date]; 

if(isAlarmUnoOn == 1 && AlarmUnoPlaying ==0){ 
    NSLog(@"Going to compare times Uno"); 
    NSDate *d = [date earlierDate:AlarmDateUno]; 
    NSLog(@"Compared Times Uno"); 


    if (d == date) { 
     NSLog(@"Current time earlier Uno"); 
    } 
    else if (d == AlarmDateUno) { 
     AlarmUnoPlaying = 1; 

     [self playAlarmSoundUno]; 
    }    

} 
[formatter setTimeStyle:NSDateFormatterMediumStyle]; 

}

Я стараюсь интегрировать ваш код в мой без успеха.

+0

Пожалуйста, используйте правильное английский. Я не понимаю, что вы имеете в виду. – dasdom

+0

Извините, Google перевести ошибку, многие ошибки, Я хочу сделать будильник в Xcode, но я знаю проблему, все работает нормально, если я использую представление сборщика с датой и временем, но если я переключу представление выбора в один с единственным временем, невозможно установить будильник, потому что, если я установил будильник в то время, прежде чем звонить сейчас, Как я могу решить проблему без использования выбора с датой? Это действие, которое устанавливает будильник. PS Извините за сообщение для предварительного просмотра, может быть, мой английский лучше, чем перевод Google ... – Acunamatata

ответ

1

Это добавит время от сборщика до текущей даты, а затем добавить один день, если время в прошлом, так что тревога всегда в будущем:

AlarmDateUno    = [alarmDatePickerUno date]; 
NSCalendar *currentCalendar = [NSCalendar currentCalendar]; 

// Get the current date & time, and modify it to the beginning of the day (midnight). 
NSDate *currentDate = [NSDate date]; 
NSDateComponents *currentDateComponents = [currentCalendar components: NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:currentDate]; 
currentDate = [currentCalendar dateFromComponents:currentDateComponents]; 

// Add the time from the picker to the currentDate (midnight value) to give us today's date with the picker time. 
AlarmDateUno = [currentDate dateByAddingTimeInterval:[AlarmDateUno timeIntervalSinceReferenceDate]]; 

// Now, if AlarmDateUno is before the current time, assume that we mean tomorrow and add one day: 
if ([currentDate compare:AlarmDateUno] == NSOrderedAscending) { 
    // Add one day to the current alarm time. 
    NSDateComponents *oneDay = [[NSDateComponents alloc] init]; 
    [oneDay setDay:1]; 
    AlarmDateUno = [currentCalendar dateByAddingComponents:oneDay toDate:AlarmDateUno options:0]; 
} 
+0

Да, это именно то, что я имею в виду ... но я не понимаю, могу ли я использовать эту часть кода? и что такое «CurrentDate». Спасибо за помощь! – Acunamatata

+0

Я изменил код из моего первоначального ответа. Это должно быть то, что вы ищете! – lnafziger

+0

проблема заключается в том, что я использую это для выполнения тревоги – Acunamatata

Смежные вопросы