2012-02-09 7 views
2

私はこの時間にメソッドを呼び出そうとしています:00:01 AMここに私のコードですが、このコードが私のメソッドを呼び出さない理由を見つけることができません。iOS:特定の時間にメソッドを呼び出す

- (BOOL)date:(NSDate *)date hour:(NSInteger)h minute:(NSInteger)m { 

    NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:currentCalendar]; 

    NSDateComponents *componets = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit)fromDate:[NSDate date]]; 
    if ([componets hour ] == h && [componets minute] == m) { 

     return YES; 
    } 
    return NO; 
} 



- (void)updateNewDate { 

    if ([self date:[NSDate date] hour:4 minute:49]) { 

     label.text = @"oyooy"; 
    } 
} 

- (void)viewDidLoad { 

[self updateNewDate]; 
} 

他の方法がある場合は教えてください。

+0

アプリケーションは午後12時01分AMに実行していたあなたは確か。アプリはフォアグラウンドで実行されていますか? – Futur

答えて

2

実際にあなたのコードが正常に動作しますが、それはさわやか必要...例えば、あなたの方法をリフレッシュするためにNSTimer を使用することができます。

[NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(updateNewDate) userInfo:nil repeats:YES]; 
2

ローカル通知を移動するための方法....

EDITです... 第二の方法は、現在の時刻を取得したときにアプリが起動し、次の深夜までの時間を見つけることですし、火災にタイマーを開始その時間間隔の後に。 これが役立つことを願っています。

+0

いいえ私はローカルノートを使用したくない –

+0

@ Mc.Lover編集を参照してください –

+0

これはバックグラウンドで実行できますか?アプリをフォアグラウンドに持ち込むことなく? – User3

関連する問題