我正在目标C中创建一个iOS应用程序。我不想为服务器付费,但我想创建一个奖励系统,以便每3个小时用户在进入应用程序时获得“硬币”奖励。例如,如果用户在下午1点退出应用程序并在下午5点重新进入应用程序,则会准备好奖励。但是,即使应用程序没有在后台运行,我也希望这种情况继续存在。
这可能吗?
答案 0 :(得分:2)
可能不是这里的计时器,但保存用户'通过NSUserDefaults
退出时间,然后每当用户重新进入应用时,将退出时间与当前时间进行比较,以查看差距是否为3小时。
例如,在viewWillDisappear()中 您可以通过以下方式保存退出时间:
NSUserDefaults.standardUserDefaults().setObject(NSDate(), forKey: "exitTime")
在viewDidLoad()中,您可以通过
提取退出时间NSUserDefaults.standardUserDefaults().objectForKey("exitTime")
答案 1 :(得分:1)
在AppDelegate中,您可以将退出日期时间保存到NSUserDefaults
当下面的函数调用时
func applicationWillTerminate(application:UIApplication)
func applicationDidEnterBackground(application:UIApplication)
当用户输入前景时,您可以将退出时间与当前时间进行比较并给出一些硬币
但这种方式存在一些问题
如果用户在设置中编辑了iPhone的日期或时间,可以获得硬币日志
但如果您使用服务器,则可以正确比较日期
有一些想法可以在没有服务器的情况下解决这个问题
如何定期保存当前时间或日期?
这是用例
如果currentdate早于保存当前日期,那么你必须拿硬币,因为这是无效硬币
我的想法怎么样?