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

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

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

这是一个简单的例子:

 func img() -> UIImage { return #imageLiteral(resourceName: "small-checkmark") } 

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

我该怎么办?

你应该检查Swift版本。

 Build Settings > Use Legacy Swift Language Version = NO 

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