Swift4.2 类型 'UIBackgroundTaskIdentifier'(又名 'Int')没有成员 'invalid'

Swift4.2 Type 'UIBackgroundTaskIdentifier' (aka 'Int') has no member 'invalid'

我遇到一个奇怪的问题,在一个 XCode 项目中运行的代码无法在另一个项目中编译。 运行 Swift4.2.

为什么我得到“UIBackgroundTaskIdentifier 没有成员 'invalid' 错误?

导入 UIKit 进口基金会

//Type 'UIBackgroundTaskIdentifier' (aka 'Int') has no member 'invalid'
var backgroundTask: UIBackgroundTaskIdentifier = UIBackgroundTaskIdentifier.invalid

我可以跳转到 UIBackgroundTaskIdentifier 定义并查看:

我遇到了同样的问题。使用 UIBackgroundTaskInvalid 而不是 .invalid

解决

var backgroundTask: UIBackgroundTaskIdentifier = UIBackgroundTaskInvalid

不知道为什么它的行为如此奇怪。在来自 raywenderlich.com 的示例中,代码编译没有错误。

我有一个类似的问题:在将代码从一个项目粘贴到另一个项目时,我突然得到“CIFormat(又名 'Int32')没有成员 'RGBA8'”。正如最初的 post 状态,通过跳转到定义,我可以看到 'RGBA8' 已定义。

在我的例子中,根据对此 的回答,在构建设置中更改 Swift 语言版本解决了问题。

该错误似乎是由于在作为 Swift 4.2 的一部分发生的 Apple 框架中重命名所致。将 Swift 语言版本更改为 4.2 解决了该问题。

对于 Xcode 11 / swift 5.1

var backgroundTaskID : UIBackgroundTaskIdentifier = UIBackgroundTaskIdentifier.invalid