知道应用程序上次使用的时间,iPhone应用程序

时间:2012-05-09 22:29:43

标签: iphone objective-c ios xcode nsuserdefaults

我想在我的应用中添加一个条件,该条件基于用户是否在过去一周内使用过该应用。最好的方法是什么?我在某处读到了我应该使用的NSUseDefaults,但不知道如何,我只是新手。

感谢。

3 个答案:

答案 0 :(得分:5)

读:

self.lastRun = [NSDate distantPast];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"MyAppLastRun"]) {
    self.lastRun = [defaults objectForKey:@"MyAppLastRun"];
}    

写:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:self.lastRun forKey:@"MyAppLastRun"];
[defaults synchronize];

比较

if ([[NSDate date] timeIntervalSinceDate:self.lastRun] > X) {
}

注意:假设NSDate * lastRun的自身属性。

答案 1 :(得分:2)

是的,只需在NSUserDefaults中粘贴一些东西:

// When app comes to foreground:

NSDate *lastStartDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"lastStartDate"];

if (!lastStartDate) {
    // Never launched
} else if ([lastStartDate timeIntervalSinceNow] < -(60. * 60. * 24. * 7.)) {
    // Do whatever you want if they've not used in past week
}

[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"lastStartDate"];

答案 2 :(得分:2)

您可以在applicationWillTerminate中设置一个值:例如:

NSUserDefaults *ud=[NSUserDefaults standardUserDefaults];
[ud setObject:[NSDate date] forKey:@"lastUsed"];

检索值:

NSDate *date=(NSDate*)[[NSUserDefaults standardUserDefaults]objectForKey:@lastUsed"];

然后比较日期。