Swift 类型不能转换为';NativeObject';
自从我将Xcode更新到版本6 beta 3后,我发现Swift 类型不能转换为';NativeObject';,swift,xcode6,Swift,Xcode6,自从我将Xcode更新到版本6 beta 3后,我发现类型不能转换为“NativeObject”错误到处都是。 这只是它抱怨的一个例子: func createPointsToPath(points:[AnyObject]!) -> CGPathRef { let path:CGMutablePathRef = CGPathCreateMutable() CFAutorelease(path) if(points != nil && points.
类型不能转换为“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]”不能转换为“NativeObject”
,我在这里检查点!=无
更新
从Beta 5开始,optionals不再被视为布尔类型,您必须显式地将其与nil进行比较。这个答案已不再有效,但我将它留给子孙后代。当然,由于Swift编译器的神秘性,您的原始代码现在可以与新的更新一起工作
旧的无效答案:
你可以说:
if points && points.count > 0
nil
使用选项计算为false,因此这应该可以工作