gpt4 book ai didi

xcode - “+=”不能应用于两个 [AnyObject] 操作数

转载 作者:可可西里 更新时间:2023-11-01 00:52:57 25 4
gpt4 key购买 nike

我有以下代码来尝试创建一个约束数组以添加到 View 中:

let views = ["button": button]
let metrics = ["margin": 16]

var constraints: [AnyObject] = []
constraints += NSLayoutConstraint.constraintsWithVisualFormat("|-margin-[button]-margin-|", options: 0, metrics: metrics, views: views)

根据我对 Swift 数组的了解,我应该能够将它们“+=”在一起以将两者连接起来,但我收到一个错误:

"Binary operator '+=' cannot be applied to two [AnyObject] operands"

这段代码有什么问题?

最佳答案

不是运营商的问题。这是因为您传入了一个 Int,您实际上应该在其中传递 NSLayoutFormatOptions 枚举类型。

如果您为 options 参数传入 NSLayoutFormatOptions 枚举之一,错误将消失:

constraints += NSLayoutConstraint.constraintsWithVisualFormat("|-margin-[button]-margin-|", options: .AlignAllLeft, metrics: metrics, views: views)

或者你也可以用你想使用的 Int 值初始化 NSLayoutFormatOptions,像这样:

NSLayoutFormatOptions(rawValue: 0)

0 在 Objective-C 中可以工作,但您需要在 Swift 中使用实际的枚举值。在许多情况下,Swift 错误仍然经常具有误导性,例如这个。

希望这对您有所帮助。

关于xcode - “+=”不能应用于两个 [AnyObject] 操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30762779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com