1

ユーザーが最初にアプリを実行する (バックグラウンドからアプリを起動または返す) ときに呼び出す必要があるメソッドがありますか? これを行う最善の方法は何ですか? (これはiOSアプリです)...これを呼び出す必要があるのはデリゲートにあると思います

4

3 に答える 3

5

メソッドが最後に呼び出された時刻をNSUserDefaults保存し、それを現在の日付と比較して、その月が初めての場合 (または保存された値がない場合、つまり初めての場合) に呼び出します。通話が成功したら、保存された時間を更新します。

于 2012-12-08T15:51:38.697 に答える
3

これを行う最善の方法は、メソッドが呼び出されたときに日付と時刻を保存し、アプリを起動するたびに現在の日付と保存された日付をチェックして、それらが少なくとも 1 か月離れているかどうかを確認することです。次に、現在の日付を保存し、そうである場合はメソッドを再度実行します。アプリデリゲートでこれを行いたいと思うのは正しいです。アプリケーションがオプションを使用して起動を終了した場合、最初の起動時に次のようなことができます。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"Last_run_method_date"]) {
    //get new date using [NSDate date] and compare with the date saved in
    //[defaults objectForKey:@"Last_run_method_date"]  If they are more than a month apart
    //[self methodToRun];
} else {
    [defaults setBbject:[NSDate date] forKey:@"Last_run_method_date"];
}

月に 1 回実行されるメソッドでは、メソッド内でこれを実行して、実行時に日付を更新する必要があります。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBbject:[NSDate date] forKey:@"Last_run_method_date"];

コードが 100% 正しくない場合は申し訳ありません。PC で入力しています。

于 2012-12-08T15:51:13.127 に答える
0

そのためのローカル通知をスケジュールします。iOSのcronのようなものです:D

使用するUILocalNotification

于 2012-12-08T16:11:51.600 に答える