ios - 显示当前时间

标签 ios swift swift4

我想在屏幕上显示当前时间。

我有一段代码来显示时间(一次) 我有代码要刷新(定时器

我无法让两者一起工作以保持屏幕上的时间更新。

PS:我知道 print("FIRE") 不会显示时间,但我尝试的两种组合都会导致错误。

func getCurrentDateTime() {
    let formatter = DateFormatter()
    formatter.dateStyle = .none
    formatter.timeStyle = .long
    let str = formatter.string (from: Date ())
    TimeNow.text = str
}

let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(fire), userInfo: nil, repeats: true)

@objc func fire()
{
   print("FIRE")
}

我的目标是在屏幕上显示一个大时钟。

最佳答案

我的建议是 Timer 的基于 block 的 API——这避免了 @objc 属性——并且只创建一次 DateFormatter

并且请遵守变量名以小写字母开头的命名约定。

var timer : Timer!

...

let dateFormatter : DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateStyle = .none
    formatter.timeStyle = .long
    return formatter
}()

timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { _ in 
    DispatchQueue.main.async {
        self.timeNow.text = formatter.string(from: Date())
    }
}

关于ios - 显示当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55525519/

相关文章:

ios - 如何在导航 Controller 模式对话框 View 中触发后退按钮

ios - 在 ios 中用于图像裁剪的圆形 mask

json - Alamofire - 使用 JSON 给出 301 的 POST 请求

ios - 如何利用 Authentication With Biometrics 在 Web View 中对用户进行身份验证?

swift - 用 flatMap 展开

iphone - UITextfield 和 UIPickerView

ios - 无法使用 PFFacebookUtilsV4 获取 session token

ios - 如何使用 swift 以编程方式解除警报?

swift - 如何在 php 和 swift 中发送 HTTP post 请求和 json 获取值

Swift/在导航栏上的后退按钮上设置白色背景