无法找到接受提供的参数的'__conversion'的重载,向数组添加多个元素

CjC*_*oax 5 swift

我有以下变量定义:

var mapHorizontalConstraints:Array = Array<NSLayoutConstraint>()
Run Code Online (Sandbox Code Playgroud)

后来当我尝试使用Visual Format Language设置我的约束数组的值时,如下所示:

    mapHorizontalConstraints =  NSLayoutConstraint.constraintsWithVisualFormat("|-0-[mapView]-0-|",
        options: NSLayoutFormatOptions(0),
        metrics: nil,
        views: ["mapView":mapView])
Run Code Online (Sandbox Code Playgroud)

我收到"无法找到接受提供的参数的'__version'的重载",带有一个小箭头指向"="上面的赋值.

我相信这是因为我们无法使用添加到数组"=".如果我可以使用数组的append()函数添加多个元素,我会尝试过,但是你知道append()只接受一个元素.

所以只是想知道这是否是我的问题,如果是这样,我如何在Swift中向数组中添加多个元素?

Jac*_*ack 6

你不能设置一个变量来键入Array,你需要明确地写出类型,如下所示:

var mapHorizontalConstraints:Array<NSLayoutConstraint> = ...

或者更简单地说,

var mapHorizontalConstraints: [NSLayoutConstraint] = ...

如评论中所述,NSLayoutConstraint.constraintsWithVisualFormat退货[AnyObject]!

因此,当你指定它时,你应该像这样贬低:

 mapHorizontalConstraints =  NSLayoutConstraint.constraintsWithVisualFormat("|-0-[mapView]-0-|",
        options: 0,
        metrics: nil,
        views: ["mapView":mapView]) as [NSLayoutConstraint]
Run Code Online (Sandbox Code Playgroud)

您可以与+=运营商一起追加.