2017-01-30 12 views
0

のための定数違反:レガシーCGFloat(M_PI)* 2

struct Constants { 
    static let m2Pi = CGFloat(M_PI) * 2 
} 

SwiftLint 0.16.1が私を警告している:

警告:レガシー定数違反:構造体スコープの定数が好まれるがレガシーグローバル定数を超える(legacy_constant)

閉じた円弧を得るには、この値がUIBezierPath.init(arcCenter center: CGPoint, radius: CGFloat, startAngle: CGFloat, endAngle: CGFloat, clockwise: Bool)に必要です。迅速な3では

+0

それはちょうど私にはダムの警告のように思える...などCの開発者の場合、それらのグローバル定数は非常に重要です...列挙型または名前空間を作成して定数をグローバル定数と同じにすると、グローバル定数を割り当てた場所でその定数について不平を言いますか? –

+1

@GradyPlayerコードの品質は重要です。それはダムの警告ではありません。 'M_PI'は実際にはマクロなので、Cでは任意の型に変換できます(リテラルです)。 Swiftでは、それをキャストしなければならないので、その特定の型ですでに与えられた定数を使用する方が安全です。構造体に名前空間を付け、必要ではない 'M_'接頭辞を削除します(これはもうグローバルではありません)。 – Sulthan

答えて

6

は、PIは今このように定義されています

CGFloat.pi 

また、このようにそれを得ることができます。

Double.pi 
Float.pi