Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 您将如何着手实施一个;dayDidChange“;方法,同时避免使用NSTimer?_Objective C_Ios - Fatal编程技术网

Objective c 您将如何着手实施一个;dayDidChange“;方法,同时避免使用NSTimer?

Objective c 您将如何着手实施一个;dayDidChange“;方法,同时避免使用NSTimer?,objective-c,ios,Objective C,Ios,您将如何实施“dayDidChange”方法 我有一个日期标签,当日期改变时需要更新 我已经实现了两个解决方案。但是放弃了他们 第一,在视图出现时,我将设置标签。当用户查看VC时,更改日期的机会非常小。。。它不会给执行带来任何“错误”,但仍然不是完美的 第二,我还实现了一个间隔为1秒的NSTimer。效果很好。但是,如果有可能我不需要调用某个方法,我就不太愿意这样做 还有其他选择吗?我需要在天气变化时更新标签。此外,是否可以将NSNotificationCenter与此一起使用?您可以计算当天剩

您将如何实施“dayDidChange”方法

我有一个日期标签,当日期改变时需要更新

我已经实现了两个解决方案。但是放弃了他们

第一,在视图出现时,我将设置标签。当用户查看VC时,更改日期的机会非常小。。。它不会给执行带来任何“错误”,但仍然不是完美的

第二,我还实现了一个间隔为1秒的NSTimer。效果很好。但是,如果有可能我不需要调用某个方法,我就不太愿意这样做


还有其他选择吗?我需要在天气变化时更新标签。此外,是否可以将NSNotificationCenter与此一起使用?

您可以计算当天剩余的时间并设置计时器。您还可以侦听UIApplicationsSignificantTimeChangeNotification。请注意,此通知不仅会在日期更改时触发,还会在时区调整和其他更改时触发。请记住,只有当您的应用程序未处于非活动状态时,才会触发通知触发。

您可以计算当天剩余的时间并设置计时器。您还可以侦听UIApplicationsSignificantTimeChangeNotification。请注意,此通知不仅会在日期更改时触发,还会在时区调整和其他更改时触发。请记住,只有当您的应用程序未处于非活动状态时,才会触发通知的触发。

在您的应用程序委托中,实现以下方法:-
(void)application significantTimeChange:(UIApplication*)application

当一天发生变化,或者设备的时间在后台因任何原因(例如时区的变化)发生变化时,调用此方法


希望能有帮助。快乐编码:)

在您的应用程序代理中,实现以下方法:-
(void)application significantimechange:(UIApplication*)application

当一天发生变化,或者设备的时间在后台因任何原因(例如时区的变化)发生变化时,调用此方法


希望能有帮助。快乐编码:)

有很多方法可以做到这一点,如果需要,我可以详细介绍。 但这里有一个很好的快速技巧

在应用程序代理中使用此代码 它将监听时间的变化(当日期或时间急剧变化时),并在这种情况下运行测试,如果需要,更新标签

请在这里读一下:

这只是一种不用定时器的简单快捷的方法

- (void)applicationSignificantTimeChange:(UIApplication *)application {
    NSLog(@"Time has changed, do a test and update the label if needed");
    // [yourViewController runTimeTestAndUpdateFunction];
}

有很多方法可以做到这一点,如果需要的话,我可以详细阐述。 但这里有一个很好的快速技巧

在应用程序代理中使用此代码 它将监听时间的变化(当日期或时间急剧变化时),并在这种情况下运行测试,如果需要,更新标签

请在这里读一下:

这只是一种不用定时器的简单快捷的方法

- (void)applicationSignificantTimeChange:(UIApplication *)application {
    NSLog(@"Time has changed, do a test and update the label if needed");
    // [yourViewController runTimeTestAndUpdateFunction];
}

虽然这确实解决了我的问题,但我希望避免NSTimer。谢谢虽然这确实解决了我的问题,但我希望避免NSTimer。谢谢你,可爱的!这以一种非常优雅的方式解决了我的问题。非常感谢,亲爱的!这以一种非常优雅的方式解决了我的问题。非常感谢先生谢谢先生!这正是我需要的。谢谢你,先生!这正是我需要的。