2011-06-29 7 views
2

私は関数を週または月に1回だけ呼び出す方法を自分に尋ねていますか? 私はNSTimerについて考えましたが、それはアプリケーションの間にのみ動作します、それはありませんか?
アプリを起動するたびに、現在の時間を保存して過去の日数を判断する必要があるかもしれません。
単純な関数呼び出しのように、より単純な方法がありますか? ;-)週または月に1回のみ関数を呼び出す方法はありますか?

ヘルプは、はい、あなたはデータベース/ユーザデフォルトでは、あなたの最後の同期の日付を格納する必要があり、その後、データベース/ユーザデフォルトから

を取得し、両方の日付を渡す必要がありますする必要が

+0

両方の組み合わせが必要な場合があります。アプリは最悪(最善)のケースで数ヶ月一緒に生き続けることがあります。 –

+0

私はあなたの質問には、関数の実行の仕方や関数の重要性など、コンテキストを少し追加する必要があると思います。しかし、私はこの時点で、「NSTimer」は行く方法ではないことを述べることができます。 –

+0

@ praveen-sこの機能を指定された間隔で実行することが重要である場合、エンドユーザーがアプリをバックグラウンドで実行し続けることに頼っていますが、ハードではなく終了することは、これを達成する最良の方法ではありません。 –

答えて

3

を高く評価

-(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]; 
} 
に合格した日数を確認する必要があり
+0

いいね、私はそれを見てみましょう! – madmax

関連する問題