ios Как узнать время запуска приложения?

Теперь мне нужно, чтобы пользователь открыл время приложения и сравнил его с последним временем, если время превышает 24 часа, просто чтобы напомнить пользователю об обновлении приложения. Кто знает код Objective-C по этому поводу? Пожалуйста, помогите мне. Спасибо большое!

3 ответа

Создайте переменную-член NSDate (т.е. NSDate *startDate) в вашем файле AppDelegate. Теперь в классе AppDelegate.m используйте приведенный ниже код.

- (void)applicationDidEnterBackground:(UIApplication *)application {
// save the last app opening time, you can save in NSuserdefaults also
startDate = [NSDate date]; 
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
NSDate *now = [NSDate date];
// Returns in seconds
NSTimeInterval timeInterval = [now timeIntervalSinceDate:startDate]

if(timeInterval > (24*3600)) {
          // remind the user of updating App here.
    }
}

Я предлагаю сохранить значения в пользовательских значениях по умолчанию, чтобы, если пользователь даже выйдет из приложения, мы могли получить данные о времени данных. Добавьте приведенный ниже код в приложение делегат - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

 NSDate *dateTimenow=[NSDate date];
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm"];
NSString *strDateTimeNow=[NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:dateTimenow]];
NSLog(@"now date time: %@",strDateTimeNow);

NSUserDefaults *userdefaults=[NSUserDefaults standardUserDefaults];

if ([userdefaults valueForKey:@"LastAppLaunchTime"]) {
    NSString *strPreviousDateTime=[NSString stringWithFormat:@"%@",[userdefaults valueForKey:@"LastAppLaunchTime"]];
    NSLog(@"previous date time: %@",strPreviousDateTime);

    //Now you can compare current date time with previous date time
    //perform task after comparing



}


[userdefaults setValue:strDateTimeNow forKey:@"LastAppLaunchTime"];// saving recent date time details for next time

Вы также можете сделать это, находясь в фоновом режиме и выходя на передний план, поэтому, если приложение приостановлено в фоновом режиме более чем на 24 часа, вы также можете выполнить свою задачу. Надеюсь, это поможет.

Вы можете использовать NSDate:

NSDate* now = [NSDate date];

Сохраните это значение как lastTimeOpened и сравните при следующем запуске:

if ([now timeIntervalSinceDate:lastTimeOpened] > someTime)
Другие вопросы по тегам