2012-03-24 10 views
0

Googleは私が日付と時間とのピッカービューを使用する場合は何もかもがうまく動作し、テスト適切な時期

は、私はXcodeでアラームを作りたいが、私は問題をaveの、多くの間違いに、メイク間違いを翻訳申し訳ありませんが、しかし、私がピッカーのビューを唯一の時間で切り替えると、アラームを設定することは不可能です。今すぐアラームを設定するとすぐにすぐに呼び出されます。

ピッカービューを使用せずに解決する方法?

これは、アラームを設定するアクションです。

PS申し訳ありませんプレビューメッセージ多分私の英語は...設定したアラームの後に時間をプールするため

// 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; 

Google翻訳その後、優れているため、私は、この使用:

// 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

申し訳ありませんが、多くのミスに間違いをする Xcodeでアラームを作りたいのですが、問題が起きました。日付と時刻のピッカービューを使用すると問題は起こりますが、ピッカービューを1つに切り替えても問題ありません。唯一の時間では、アラームを設定することは不可能です。私は一度にアラームを設定してすぐにすぐに鳴るので、 私はどのように日付を使用してピッカービューを使用せずに解決することができますか? これは、アラームを設定するアクションです。 PSプレビューメッセージに申し訳ありません私の英語はgoogle translateがより良いかもしれません... – Acunamatata

答えて

1

これは、ピッカーから現在の日付までの時間を追加し、時間が過去にある場合にアラームが将来的に常にあるように、その後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

関連する問題