2012-02-09 6 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

. 즉 앱이 포 그라운드에서 실행되고 있습니까? – Futur

답변

2

사실 코드는 잘 작동하지만 당신은 당신의 방법을 새로 NSTimer 을 사용할 수 있습니다 예를 들어, 그것은 ... 새로 고쳐야 : 당신이 확실 응용 프로그램이 오전 12시 1분에서 실행중인

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

지역 알림 갈 방법 ....

편집입니다 ... 두 번째 방법은 현재 시간을 얻을 때마다 응용 프로그램 실행되고 다음 자정까지 시간을 찾을 수 있습니다, 다음 화재 타이머를 시작합니다 그 시간 간격 후에. 도움이되기를 바랍니다.

+0

아니요 로컬 노티프를 사용하지 않으려합니다 –

+0

@ Mc.Lover 편집보기 –

+0

백그라운드에서이 작업을 수행 할 수 있습니까? 앱을 포 그라운드로 가져 오지 않고도? – User3

관련 문제