自从我将Xcode更新为版本6 beta 3后,我发现Type is not convertible to 'NativeObject'
错误到处都是。
这只是一个抱怨的案例:
func createPointsToPath(points:[AnyObject]!) -> CGPathRef {
let path:CGMutablePathRef = CGPathCreateMutable()
CFAutorelease(path)
if(points != nil && points.count > 0){ //this line complains about '[AnyObject]' is not convertible to 'NativeObject'
var point:CGPoint = (points[0] as NSValue).CGPointValue()
CGPathMoveToPoint(path, nil, point.x, point.y)
println("number of elements in the array \(points.count)")
for index in 1...points.count - 1 {
point = (points[index] as NSValue).CGPointValue()
CGPathAddLineToPoint(path, nil, point.x, point.y)
}
}
return path
}
如代码评论中所述,它在'[AnyObject]' is not convertible to 'NativeObject'
我抱怨points != nil
答案 0 :(得分:2)
从Beta 5开始,选项不再被视为布尔类型,您必须明确地与nil进行比较。这个答案不再有效,但对于后人我把它留在了下面。当然,由于Swift编译器的奥秘,您的原始代码现在可以使用新的更新。
你可以说:
if points && points.count > 0
nil
使用选项评估为false,因此这应该有效。