ios - swift 无法将类型 (_, _) -> _ 的值转换为预期的参数类型 '((_, CGFloat)) -> _

标签 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)
        })
}

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

cannot convert value of type (_, _) -> _ to expected argument type '((_, CGFloat)) -> _" at .flapMap line.

我熟悉 Objective-C 但不熟悉 Swift。代码中会出现什么问题?

enter image description here

最佳答案

还需要使用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 上执行了代码,它没有给我任何错误。

只是使用我在上面编写的相同代码,看看它是否可以正确编译。

关于ios - swift 无法将类型 (_, _) -> _ 的值转换为预期的参数类型 '((_, CGFloat)) -> _,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47069360/

相关文章:

ios - CloudKit - 如何共享多个记录和检索共享记录?

ios - 当 Realm 上的对象失效时该怎么办

ios - 即使在小代码示例中将 unowned 与 Protocol 一起使用时也会发生 Swift Leak

从 mach_timebase_info() 创建一个结构

ios - MPMoviePlayerController 在 Cocos2D 中导致约束警告

ios - UITableViewCell选中背景效果

ios - Google Sheets API 根本不起作用?

ios - 如何在后台刷新的并发症上显示 HealthKit 数据?

Swift3 迁移问题

ios - 激活/停用自动布局 NSLayoutConstraints