2017-11-24 13 views
1

私の構造体の演算子をオーバーロードしたいが、 "静的メンバ 'rating'というタイプのインスタンスを 'GlobalSettings'型で使用することはできません。 私はすでにこのエラーへのカップルの回答を読んでいますが、そこの解決策は私を助けません。どうすればこの問題を解決できますか?Swift Error "スタティックメンバはタイプのインスタンスでは使用できません"

struct GlobalSettings{ 
    static var rating = false 
} 

func ==(l: GlobalSettings, r: GlobalSettings) -> Bool { 
    if l.rating == r.rating { 
     return true 
    }else{ 
     return false 
    } 
} 
+1

'L'と '' r' rating'変数を持っていません。 'GlobalSettings'が行います。 – Alexander

+0

明白な解決策は、 "静的"を削除することです。 *なぜ*あなたは 'rating'は静的なプロパティでなければならないと思いますか? –

+0

そしてbtwは関数本体を 'return l.rating == r.rating'に単純化します –

答えて

5

明らかなエラーです。静的メンバーは、lおよびrのようなインスタンス変数ではアクセスできません。

静的メンバは、タイプを介してアクセスする必要があります(class/struct/enum)の名​​前のように:

GlobalSettings.rating 
関連する問題