gpt4 book ai didi

swift - Swift Playground 中的 NSTimer.scheduledTimerWithTimeInterval

转载 作者:搜寻专家 更新时间:2023-10-30 22:07:09 24 4
gpt4 key购买 nike

我看到的所有关于在 Swift 中使用“NSTimer.scheduledTimerWithTimeInterval”的示例都显示使用“target: self”参数,但不幸的是,这在 Swift Playgrounds 中不能直接工作。

Playground execution failed: <EXPR>:42:13: error: use of unresolved
identifier 'self'
target: self,

这是导致错误的上面引用的示例:

func printFrom1To1000() {
for counter in 0...1000 {
var a = counter
}
}

var timer = NSTimer.scheduledTimerWithTimeInterval(0,
target: self,
selector: Selector("printFrom1To1000"),
userInfo: nil,
repeats: false
)
timer.fire()

最佳答案

这些天你真的不应该使用 NSTimer。它会消耗大量资源,导致不必要的电池消耗,而且 API 本身会产生难看的代码。

改用dispatch_after():

dispatch_after(0, dispatch_get_main_queue()) { () -> Void in
for counter in 0...1000 {
var b = counter
}
}

当然,由于计时器会在 playground 执行完之后触发,因此您需要等效于 timer.fire() 来强制代码立即执行,而不是在 0 秒延迟后执行。这是它的工作原理:

let printFrom1To1000 = { () -> Void in
for counter in 0...1000 {
var b = counter
}
}

dispatch_after(0, dispatch_get_main_queue(), printFrom1To1000)

printFrom1To1000()

关于swift - Swift Playground 中的 NSTimer.scheduledTimerWithTimeInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27262688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com