为什么我不能在Xcode 8中使用新的内联#imageLiteral语法?"返回结果中的预期表达"

Dou*_*ith 7 xcode ios swift swift3 xcode8

我正在尝试使用#imageLiteralXcode 8中的资源文件夹中的新内联图像分配,而不是整个UIImage(named: "")语法,它只是显示的图像,如此处所示.

但是当我这样做时,当它是一个函数时,我得到错误"返回结果中的预期表达式".

这是一个简单的例子:

func img() -> UIImage {
    return #imageLiteral(resourceName: "small-checkmark")
}
Run Code Online (Sandbox Code Playgroud)

在Xcode中它显示的small-checkmark是预期的,但由于上述错误,它将无法编译.一切都为我自动完成,文件在资产文件夹(PDF).我不明白出了什么问题.如果我回来UIImage()它编译好.

我该怎么办?

小智 6

你应该检查Swift版本.

Build Settings > Use Legacy Swift Language Version = NO
Run Code Online (Sandbox Code Playgroud)

Image Literal仅支持Swift3.0,而不支持Swift2.3.