2017-06-03 8 views
0

これはSwiftの私の最初のプロジェクトですので、私に同行してください。スイフト:変数値がdidSetに継承されない

punkteLimitは値30で初期化する必要があります。変数とラベルの値は、スライダ値が変更されるたびに更新される必要があります。

var punkteLimit: Int = 30 

@IBAction func sliderPunktelimitChanged(_ value: Float) { 
    punkteLimit = Int(value) 
    labelPunktelimit.setText("Punkte-Limit: \(punkteLimit)") 
} 

これはうまくいくようです。ラベルが正しく更新されます。つまり、スライダを28に変更すると、「Punkte-Limit:28」と表示されます。しかし、punkteLimitは、次の部分の初期値30になっています(considerPunktelimitでも同じですが、解決策は同じでなければなりません)。ハプティックフィードバックは上記の変更にかかわらずgesamtPunkte == 30でトリガーされます。

重要な場合は、gesamtPunkte + = 1を実行して値を調整するボタンを使用します。

var gesamtPunkte: Int = 0 { 
    didSet { 
     if gesamtPunkte == punkteLimit && considerPunktelimit == true { 
      WKInterfaceDevice.current().play(WKHapticType.stop) 
     } 
     ... 
    } 
} 

私はここからどこに行くべきか正確には分かりません。

大変助かります。

答えて

0

私は問題の変数をInterfaceControllerクラスの外に移動させることで問題を解決しました(それらをグローバルにします)。誰かがなぜクラスの内部で動かなかったのか、それをグローバル化する上で問題があるかどうかについてコメントしたいと思ったら、私はこのアプローチについての意見を読んだ。

関連する問題