在Xcode 6 beta 5中使用=时,'[(UIView)]’与’UInt8’不同.请改用append方法?

前端之家收集整理的这篇文章主要介绍了在Xcode 6 beta 5中使用=时,'[(UIView)]’与’UInt8’不同.请改用append方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用=来一个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 += operator on arrays only concatenates arrays,it does not append an element. This resolves ambiguity working with Any,AnyObject and related types.

因此,如果=的左侧是一个数组,那么现在必须也是.

所以:

dropsFound.append(hitView)

或者,如果你真的想使用=你可能会做:

dropsFound += [hitView]

但那会有点傻.使用追加,如错误消息建议.

原文链接:https://www.f2er.com/iOS/333618.html

猜你在找的iOS相关文章