2017-01-19 6 views
0

ユーザーが持っている金額を節約したいと思います。アプリケーションを開くたびに値を使用しない限り値は変わりません。ユーザーがアプリ内の店で何かを買うと値段が下がり、アプリに戻ったときの価値は途絶えたところで売り買いを続けることができます。私のコードは以下の通りです。私は整数として保存する方法を理解できないので、数値を戻して再利用することができます。整数を保存して再利用するにはどうすればいいですか?

var cashCounter = 50 

    //user spends in-app money 
    //user not has x money 

    UserDefaults.standard.set(cashLabel.text, forKey: "cash") 


override func viewDidLoad() { 
    super.viewDidLoad() 

    let numberObject = UserDefaults.standard.object(forKey: "cash") 
    if let cash = numberObject as? String { 
     scoreLabel.text = String(cash) 
    } 
+0

あなたはちょうどそれをロードするためにキーの整数を使用し、あなたの整数 –

+0

あるcashCounterを保存しなければならないときは、文字列(cashLabel.text)を保存していますそれからStringを作成してラベルに追加してください –

+0

これは...ポイントに作用します。私は、ユーザーがお金を使った後、自動的に50に戻ってそれを減算するという問題を抱えています。保存される新しい値ではありません。 –

答えて

0

USERのデフォルトから整数値を設定するために迅速3.0

の更新:

self.setUserDefaultIntegerFromKey("Your Key", value: 1) 

をUSERのデフォルトから整数値を取得するには:

let value = self.getUserDefaultIntegerFromKey("Your Key") 

方法から整数値を取得しますユーザーデフォルト:

func getUserDefaultIntegerFromKey(_ key : String) -> Int 
{ 
    var value : Int = 0 

    if (UserDefaults.standard.value(forKey: key) != nil) 
    { 
     value = UserDefaults.standard.value(forKey: key) as! Int 
     return value 
    } 
    return value 
} 

メソッドは、ユーザDEFAULTからInterer値を設定するには:

func setUserDefaultIntegerFromKey(_ key : String ,value : Int) 
{ 
    UserDefaults.standard.set(value, forKey:key) 
    UserDefaults.standard.synchronize() 
} 
+1

強制的に強制する必要はありません –

+0

ユーザーのデフォルトには、keyに保存されている整数をロードするためのIntegerというメソッドがあります。 –

+0

@LeoDabus 'synchronize()'を呼び出す必要はありませんか?自動的に起こるか? – shallowThought

関連する問題