2012-02-15 70 views
0

嗨,我正在開發一個應用程序,在後臺使用核心位置並通知用戶位置通知推送。根據日期切換核心位置

我使用下面的代碼來註冊重大的位置更改。

CLLocationManager *locationManager = [[[CLLocationManager alloc] init] 
autorelease]; 
[locationManager startMonitoringSignificantLocationChanges]; 

並在更新到位置時運行後臺任務。

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
    fromLocation:(CLLocation *)oldLocation; 

但是這個功能只在特定的一週中需要。是否可以爲CLLocationManager設置一個計時器,使其僅在一週中的特定日子處於活動狀態?例如

例如,僅在週一開啓重要位置更改,本週剩下的時間將關閉位置更改。

編輯:澄清,尋找關閉位置服務(同調用[locationManager stopMonitoringSignificantLocationChanges]),即。 gps符號僅在星期一激活,在其他日子,gps符號關閉。

回答

0
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDate *today = [NSDate date]; 
NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit fromDate:toDay]; 
NSInteger weekday = [weekdayComponents weekday]; 
if (weekday == 2) { 
    // It is monday 
} else { 
    // It is another day of the week 
} 
+0

謝謝!但即時通訊尋找在不受影響的日子裏關閉locationManager。那可能嗎? – user913399 2012-02-15 05:06:09

+0

你可以在else語句中做到這一點。當你的應用程序啓動時,測試它是哪一天並打開或關閉locationManager。 – sch 2012-02-15 05:12:15

+0

如果用戶選擇不啓動應用程序,那麼有沒有辦法解決這個問題?就像提醒應用程序,當你設置一個特定的日期+一個位置,gps不會被激活,直到達到規定的日期。 – user913399 2012-02-15 05:19:23