在 Xcode 6 beta 5 中使用 += 时,'[(UIView)]' 与 'UInt8' 不同。使用追加方法?

2023-11-21

我正在使用 += 将 UIView 指向数组,但这似乎不再起作用。线路

dropsFound += hitView

给出错误“[(UIView)]”与“UInt8”不同

这是该方法的一部分。请注意,从 Xcode 6 beta 5 开始,hitTest 现在返回一个可选值,因此有必要说

hitView?.superview

代替

hitView.superview

在“if”语句中。

func removeCompletedRows() -> Bool {
    println(__FUNCTION__)
    var dropsToRemove = [UIView]()

    for var y = gameView.bounds.size.height - DROP_SIZE.height / 2; y > 0; y -= DROP_SIZE.height {
        var rowIsComplete = true
        var dropsFound = [UIView]()
        for var x = DROP_SIZE.width / 2; x <= gameView.bounds.size.width - DROP_SIZE.width / 2; x += DROP_SIZE.width {
            let hitView = gameView.hitTest(CGPointMake(x, y), withEvent: nil)
            if hitView?.superview === gameView {
                dropsFound += hitView
            } else {
                rowIsComplete = false
                break
            }
        }

...方法的其余部分被省略


这在上一个版本中发生了变化。来自 beta 5 发行说明:

The +=数组上的运算符仅连接数组,不追加元素。这解决了使用时的歧义Any, AnyObject及相关类型。

所以如果左边+=是一个数组,现在也一定是一个数组。

so:

dropsFound.append(hitView)

或者如果你真的想使用+=你可能可以这样做:

dropsFound += [hitView]

但这有点愚蠢。使用append就像错误消息所暗示的那样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Xcode 6 beta 5 中使用 += 时,'[(UIView)]' 与 'UInt8' 不同。使用追加方法? 的相关文章

随机推荐