我的应用程序应该在时间变化时执行操作(每分钟,而不是每一秒)。我实现这一目标的方法是创建一个Timer
对象,如下所示:
var timer = Timer.scheduledTimer(timeInterval: 60, target: self, selector: #selector(ViewController.update), userInfo: nil, repeats: true)
虽然这种方式有效,但它看起来并不专业,因为应用程序不会在时间变化时准确执行更新,而是取决于创建对象的精确时刻。例如,如果{10}对象是在10:10:30创建的,则更新将仅在分钟更改后30秒执行。
有没有办法让我知道手机上的那一刻会发生变化?
提前致谢!
答案 0 :(得分:2)
您可以在特定时间安排第一个计时器的火灾,该时间可能是下一轮的分钟。这是一个例子(复制并粘贴到playgroung):
bundles.Add(new StyleBundle("~/Content/kendo/2016.2.504/kendostyles").Include(
"~/Content/kendo/2016.2.504/kendo.common.min.css",
"~/Content/kendo/2016.2.504/kendo.rtl.min.css",
"~/Content/kendo/2016.2.504/kendo.default.min.css",
"~/Content/kendo/2016.2.504/kendo.dataviz.min.css",
"~/Content/kendo/2016.2.504/kendo.dataviz.default.min.css",
"~/Content/jquery-ui.css"));
<!--KENDO CSS LINKING ON VIEW-->
@Styles.Render("~/Content/kendo/2016.2.504/kendostyles")
请注意,如果应用在后台,则不会触发计时器。