2
我在問自己如何每週或每月只調用一次函數? 我想過NSTimer,但只有在應用程序處於活動狀態時才起作用,不是嗎?
因此,也許我必須保存當前時間,並確定每次啓動應用程序時的過去日子。
還是有一個更簡單的方法,就像一個簡單的函數調用? ;-)如何每週或每月只調用一次函數?
幫助表示讚賞
我在問自己如何每週或每月只調用一次函數? 我想過NSTimer,但只有在應用程序處於活動狀態時才起作用,不是嗎?
因此,也許我必須保存當前時間,並確定每次啓動應用程序時的過去日子。
還是有一個更簡單的方法,就像一個簡單的函數調用? ;-)如何每週或每月只調用一次函數?
幫助表示讚賞
是的,你需要存儲您上次同步日期數據庫/用戶默認值,然後從需要數據庫/用戶默認
獲取並需要通過這兩個日期,同步日期和當前日期下面的函數
-(int)howManyDaysHavePast:(NSDate*)lastDate today:(NSDate*)today {
NSDate *startDate = lastDate;
NSDate *endDate = today;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:NSDayCalendarUnit fromDate:startDate toDate:endDate options:0];
int days = [components day];
return days;
}
,然後你需要檢查多少天過去了
if([self howManyDaysHavePast:lastSyncedDate today:[NSDate date]]>=7)
{
[self callFunction];
}
看起來不錯,我會看看吧! – madmax
您可能必須在那裏混合使用。在最糟糕的情況下,該應用可能會一直保持數月。 –
我認爲你需要爲你的問題添加一些更多的上下文,比如運行函數將實現什麼功能,以及對於應用程序而言,函數*對於每週或每月運行一次會有多重要。不過,我現在可以說,'NSTimer'不是要走的路。 –
@ praveen-s如果此功能在指定的時間間隔運行至關重要,那麼依賴最終用戶保持應用程序在後臺運行而不是*難*退出,這當然不是實現這一目標的最佳方式。 –