如何将我的 UILabel 与系统时间同步?

Swe*_*per 5 time ios swift

我有一个标签,我想在其中显示系统时间。我希望我的标签与它同步,即标签将始终显示与状态栏中显示的时间相同的时间。

我使用以下代码段将标签文本设置为系统时间:

let date = NSDate()
let formatter = NSDateFormatter()
formatter.dateFormat = "hh:mm"
label.text = formatter.stringFromDate(date)
Run Code Online (Sandbox Code Playgroud)

但我不知道什么时候运行这段代码。我以为我可以每分钟运行一次,但这并不总是有效。考虑一下:

用户在系统时间08:00:30启动app,运行上面的代码。状态栏显示的时间和我标签显示的时间是一样的:08:00

在系统时间 08:01:00 时,状态栏中显示的时间更改为 08:01。但是由于应用程序启动还没有过去 1 分钟,所以标签的文本仍然是 08:00。

这就是为什么我说每分钟都做这件事并不总是奏效。

我还想过使用 anNSTimer每秒或毫秒运行该代码。但这不是太过分了,会导致性能问题吗?

有没有“正确”的方法来做到这一点?

Hos*_*eeb 3

您可以按照您所说的每分钟调用您的函数,但第一次您可以在 30 秒后运行它(系统时间为 08:00:30),然后在 1 分钟后继续调用,在这种情况下,我认为它们将是相同的