条件绑定的初始值设定项必须具有可选类型,而不是'GMSPlaceField'


// Specify the place data types to return. 
guard let fields: 
GMSPlaceField = 
GMSPlaceField(rawValue: 
UInt(GMSPlaceField.all.rawValue)) else {return}

该代码来自Swift 4.2 的一个正在运行的ios应用程序

我已经从git克隆了应用程序已安装吊舱

这个问题,我不确定为什么

这是由从4.0.0开始的Places SDK中的更改引起的。

如果使用GMSPlaceField(rawValue:)语法作为构造函数,则您的实现将中断,较旧版本的SDK将其作为可选的GMSPlaceField?返回。

4.0.0及更高版本返回非可选的GMSPlaceField值;对可选项执行的任何操作(如条件检查或强制展开(都将失败。此外,您现在可以使用数组语法来组合GMSPlaceField

由于您不再需要处理可选,您可以简单地说

let fields = [GMSPlaceField.all]

注意数组语法的使用,因为GMSPlaceField现在使用NS_OPTIONS

最新更新