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

时间:2018-12-08 13:31:13

标签: xcode10 ios12 swift4.2 uibackgroundtask ios-background-mode

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

为什么会出现“ UIBackgroundTaskIdentifier没有成员'无效'错误?

导入UIKit 导入基金会

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

我可以跳入UIBackgroundTaskIdentifier定义并看到以下内容: enter image description here

3 个答案:

答案 0 :(得分:4)

我有同样的问题。使用UIBackgroundTaskInvalid代替.invalid

解决

var backgroundTask: UIBackgroundTaskIdentifier = UIBackgroundTaskInvalid

不确定它为什么如此奇怪。在raywenderlich.com的示例中,代码编译没有错误。

答案 1 :(得分:0)

我有一个类似的问题:在将代码从一个项目粘贴到另一个项目时,我突然得到“ CIFormat(aka'Int32')没有成员'RGBA8'。如原始帖子所述,通过跳转到定义,我可以看到定义了“ RGBA8”。

就我而言,按照此question的答案,在“构建设置”中更改Swift语言版本即可解决此问题。

该错误似乎是由于在Swift 4.2中发生的Apple框架中的重命名。将Swift语言版本更改为4.2可解决此问题。

答案 2 :(得分:0)

对于Xcode 11 / Swift 5.1

var backgroundTaskID : UIBackgroundTaskIdentifier = UIBackgroundTaskIdentifier.invalid