我创建了NSUserDefaults对象,只要偶数发生,它就会使用新值进行更新。 我想要的是(根据我的申请要求)该对象应该每7天清除一次。 就像第一次NSUserDefaults今天如此精确地在7天后更新一样,一个方法应该工作并清除NSUserDefaults。 因此,在接下来的7天内,将为此分配新值。
是否有可能在objective-c?
答案 0 :(得分:4)
是..将NSDate
(当前日期)存储为NSUserdefaults
中的对象。
每次发布您的应用时..从默认值中获取日期并将其与当前日期进行比较..
如果间隔超过7天(您必须进行数学计算才能得到结果)
然后将对象设置为nil
使用
[defaults setNilforKey: ];
答案 1 :(得分:2)
您可以做的是存储NSDate对象。然后每次启动应用程序(或更频繁)时,检查当时和现在之间的时差是否为7天。
const NSString *kFirstLaunchDateKey = @"firstLaunchDate";
NSDate *firstLaunchDate = [[NSUserDefaults standardUserDefaults] objectForKey:kFirstLaunchDateKey];
// If this is the first time the app has been launched we record right now as the first time the app was launched.
if (!firstLaunchDate) {
[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:kFirstLaunchDateKey];
return;
}
NSTimeInterval *diff = abs([firstLaunchDate timeIntervalSinceNow]);
if (diff > 60 * 60 * 24 * 7) {
// Seven days have passed since the app was first launched.
// Display the rate button.
}
如果是通话
- (void)removePersistentDomainForName:(NSString *)domainName
将应用程序的包标识符作为参数。
domainName
您想要的键和值的域。该值应该等于应用程序的包标识符。