swift - 使用 Vapor 时 Timer.scheduledTimer 不可用?

标签 swift linux nstimer vapor server-side-swift

我在使用 vapor+Xcode 编译时遇到了这个编译问题:

enter image description here

以下是一些相关信息:

$ vapor --version
Vapor Toolbox: 3.1.7
Vapor Framework: 3.0.1

$ swift --version
Apple Swift version 4.1 (swiftlang-902.0.48 clang-902.0.37.1)
Target: x86_64-apple-darwin17.6.0

根据 the status这应该没问题。有什么想法吗?

最佳答案

在 MacOS 上,无法构建

$ swift --version
Apple Swift version 4.1 (swiftlang-902.0.48 clang-902.0.37.1)
Target: x86_64-apple-darwin17.5.0

$ mkdir MyExec
$ cd MyExec

$ swift package init --type executable
$ swift package update

$ vim Sources/MyExec/main.swift
import Foundation
import CoreFoundation

let timer = Timer.scheduledTimer(withTimeInterval: 3, repeats: true) { timer in
    print("\(timer)")
}
print("\(timer)")

CFRunLoopRun()

$ swift build

Compile Swift Module 'MyExec' (1 sources)
/path/MyExec/Sources/MyExec/main.swift:4:19: error: 'scheduledTimer(withTimeInterval:repeats:block:)' is only available on OS X 10.12 or newer
let timer = Timer.scheduledTimer(withTimeInterval: 3, repeats: true) { timer in
                  ^
/path/MyExec/Sources/MyExec/main.swift:4:19: note: add 'if #available' version check
let timer = Timer.scheduledTimer(withTimeInterval: 3, repeats: true) { timer in
                  ^
error: terminated(1): /Library/Developer/CommandLineTools/usr/bin/swift-build-tool -f /path/MyExec/.build/debug.yaml main output:

在 Ubuntu 上,工作

$ swift --version
Swift version 4.1 (swift-4.1-RELEASE)
Target: x86_64-unknown-linux-gnu

$ mkdir MyExec
$ cd MyExec

$ swift package init --type executable
$ swift package update

$ vim Sources/MyExec/main.swift
import Foundation
import CoreFoundation

let timer = Timer.scheduledTimer(withTimeInterval: 3, repeats: true) { timer in
    print("\(timer)")
}
print("\(timer)")

CFRunLoopRun()

$ swift build

$ .build/x86_64-unknown-linux/debug/MyExec

<Timer: 0x000055aeb1cf6790>
<Timer: 0x000055aeb1cf6790>
<Timer: 0x000055aeb1cf6790>

关于swift - 使用 Vapor 时 Timer.scheduledTimer 不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50479138/

相关文章:

ios - 长宽比限制没有改变

ios - 如何声明自定义对象,例如。可编码类中的计时器

ios - 从 MPMediaItem 转换 URL

windows - Perl(windows和linux的区别)

linux - 如何判断我的标准输入是来自管道输入进程的标准输出还是标准错误

ios - 如何使用选择器和时间间隔创建 NSDate 计时器

IOS PDF查看器?

python - *NIX 上的并行 Python 发行版有什么缺点?

ios - 在 Objective-C 中使用 for 循环减慢 NSTimer

iphone - 在 Objective-c 中实现倒数计时器?