swift无法转换类型的值(_,_) - > _到期望参数类型'((_,CGFloat)) - > _

时间:2017-11-02 06:59:16

标签: ios swift nslayoutconstraint

我正在使用图书馆URLEmbeddedView

它在其库中定义了以下代码:

func addConstraints(with view: UIView, center: CGPoint, multiplier: CGFloat = 1) {
    view.translatesAutoresizingMaskIntoConstraints = false
    addConstraints([
            (.centerX, center.x),
            (.centerY, center.y)
        ]
        .flatMap {
            .init(item: view,
                  attribute: $0,
                  relatedBy: .equal,
                  toItem: self,
                  attribute: $0,
                  multiplier: multiplier,
                  constant: $1)
        })
}

我们正在通过库生成链接预览,但发生以下错误:

  

无法转换类型(_,_)的值 - > _到预期的参数类型   '((_,CGFloat)) - > _“at .flapMap line。

我熟悉Objective-C但不熟悉Swift。代码中的问题是什么?

enter image description here

2 个答案:

答案 0 :(得分:1)

正在调用错误的viewController.addConstraints()

当您想要拨打view.addConstraints()

时,您正在呼叫addConstraints()

将第二个view.addConstraints()更改为ansible web -b -l 192.168.31.101 -m yum -a "name=gcc state=latest"

答案 1 :(得分:1)

还必须使用8.1以上的Xcode版本。

我使用了与您相同的代码。只需将约束应用于view,它就可以完美运行。

   view.addConstraints([
        (.centerX, center.x),
        (.centerY, center.y)
        ].flatMap {
            .init(item: view, attribute: $0, relatedBy: .equal, toItem: self, attribute: $0, multiplier: multiplier, constant: $1)
    })

flatMap语法中没有问题。我已经在Xcode-9以及Xcode-8上执行了代码,但它没有给我任何错误。

刚刚使用了我上面编写的相同代码,看看它是否正确编译。