我正在编写一个iPad应用程序,当这一天变为星期日时我必须更改图形。
我直截了当的解决方案是检查- (void)applicationDidBecomeActive:(UIApplication *)application
或-(void)viewWillAppear:(BOOL)animated
方法中的日期,并设置一个计时器,例如每10分钟检查当应用程序处于活动状态时是否已更改为星期日。< / p>
是否还有另一种可能更有效的方法来处理这个问题?
答案 0 :(得分:13)
在您的申请代表中,实施以下方法:
-(void)applicationSignificantTimeChange:(UIApplication *)application
当白天发生变化时,或者由于某种原因(例如时区更改)在后台更改了设备的时间,就会调用此方法。
答案 1 :(得分:4)
另一个选择是使用你提到的相同的两种方法,“viewWillAppear:”和“applicationDidBecomeActive:”,而不是每10分钟设置一个计时器,只需计算当前时间和下一个星期日之间的时间量。取这个时间间隔并用它设置一个定时器,它将在星期日的午夜准确发射。
答案 2 :(得分:1)
当天发生变化时会有通知。你可以听它,并在它发射时检查它是否是星期天。
您还应该检查它是否在发布时是星期天。
答案 3 :(得分:1)
该解决方案有什么问题?在某些地方,它是否比每10分钟更频繁地变成星期天?
你可能想要考虑一件事:在你的计时器开火方法中,如果时间是在23:50之后,那么更快地重新安排计时器(即大约00:00),这样你就更有可能准确地捕捉到午夜。 / p>
答案 4 :(得分:1)
本章可能有用,使用某种类型的通知进行更新:
虽然我自己最终得到了您使用的相同解决方案,但我发现它更容易,更可靠。