我只想实现一个简单的时钟,这是我的故事板:
代码:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var timeLabel: UILabel!
let dateFormatter = DateFormatter()
override func viewDidLoad() {
super.viewDidLoad()
dateFormatter.dateFormat = "hh:mm:ss"
_ = Timer.init(timeInterval: 0.1, target: self, selector: #selector(updateClock), userInfo: nil, repeats: true)
}
func updateClock() {
self.timeLabel.text = dateFormatter.string(from: Date())
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
标签只会显示00:00:00
。有人可以给我一些建议吗?
答案 0 :(得分:3)
您必须创建Timer
(您已完成)并计划。这会将它添加到运行循环中,因此它实际上会触发。
最简单的方法是使用Timer.scheduledTimer(timeInterval:target:selector:userInfo:repeats:)
,Timer
创建和安排_ = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(updateClock),
userInfo: nil, repeats: true)
:
Timer
请注意,您可能还应该存储对currentItem.TotalPrice = currentItem.NumberOfItems * currentItem.Price;
的弱引用,以便在您希望它停止触发时使其无效。