2016-10-08 10 views
0

私はこのように定義されているいくつかのCGFloatsを引くしようとしています:減算、曖昧エラースウィフト3

var panelHeight:CGFloat! 

私は(screenHeight - panelHeight - tabBarHeight)を実行しようとすると、次のコードでは、私はCGFloatとCGFloat!にバイナリ演算子を適用できないというエラーが出ますが、3つの浮動小数点数はすべて!と宣言されているので意味がありません。 tabBarHeightをtabBarHeight!に置き換えた場合、「メンバーへのあいまいな参照 - 」というエラーが発生します。

collisionBehavior.addBoundaryWithIdentifier("upperBoundary" as NSCopying, fromPoint: CGPoint(x: 0, y: screenHeight - panelHeight - tabBarHeight), toPoint: CGPoint(x: boundaryX, y: screenHeight - panelHeight - tabBarHeight)) 
+0

開始:この問題を回避するにはそうのような非随意に第一または第二の変数をキャストすることです。式の複雑さにより、コンパイラーは無効なエラーを表示する可能性があります。 – Sulthan

+0

私は試してみましたが、エラーは同じです – Alessandro

+0

これはSwiftのバグだと思います.Appleやswift.orgにバグレポートを送ってください。簡単な回避策 - '0 + screenHeight-panelHeight-tabBarHeight'。 – OOPer

答えて

2

私はバグレポートを見つけることができませんが、これは既知のバグです。変数にtabBarHeight` - panelHeight - 式 `screenHeightを抽出することによって

(screenHeight as CGFloat) - panelHeight - tabBarHeight