簡體   English   中英

swift無法將類型(_,_)-> _的值轉換為預期的參數類型'((_,CGFloat))-> _

[英]swift cannot convert value of type (_, _) -> _ to expected argument type '((_, CGFloat)) -> _

我正在使用庫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)
        })
}

我們正在通過庫生成鏈接的預覽,但是發生以下錯誤:

無法在.flapMap行將(_,_)-> _類型的值轉換為期望的參數類型'((_,CGFloat))-> _“。

我熟悉Objective-C但不熟悉Swift 代碼中的問題是什么?

在此處輸入圖片說明

錯誤的addConstraints()被調用。

您要在調用viewController.addConstraints()時要調用view.addConstraints()

將第二個addConstraints()更改為view.addConstraints()

還必須使用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-9Xcode-8上執行了代碼,但沒有給我任何錯誤。

只是使用了我上面編寫的相同代碼,然后看它是否可以正確編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM