我正在使用 += 将 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(使用前将#替换为@)