微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在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.jb51.cc/iOS/333618.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐