2017-03-01 106 views
-1

我是Xcode的新手,目前正在製作一款應用程序,其中包含一定數量的「香蕉/錢」,您可以翻轉一枚硬幣,然後贏得2倍或失去下注。 (僅供體驗)Swift UserDefaults(2017)

我的遊戲完全正常工作,現在我剛剛決定,我希望在應用程序關閉並開始時保存貨幣;使用NSUserDefaults。

我已經設置了我的NSUserDefaults,它正在工作。它顯示我上次關閉該應用的貨幣,我只能在0和我的貨幣之間下注。 - 太棒了!

但是,即使我的全部貨幣正在顯示,並且我可以下注我的全部貨幣,但它背後的數學依然在掙扎。 應用程序關閉後,它將整數重新設置爲0,因爲這是我在創建變量時已經在我的viewDidLoad上面聲明的內容。

不明白?可以說我有30個香蕉,我打賭下了30個香蕉。如果我贏了,我將共有30個banan,如果輸了,我會有-30個bananas。 (該整數是由於某種原因設置爲0)

我需要一種方法來設置整數我上次保存; 「currencySave」。 - 我需要一種檢測方式來檢測應用程序是否第一次被打開;如果是的話,你必須以恆定的整數/貨幣開始。

代碼:

我所有的變量都是整數。

betVar; the variable/value, that you're betting

currencyVar; the variable/value, that you're having. (Your cash)

currencySave; the name I've saved my integer into

以上viewDidLoad中

let defaults = UserDefaults.standard 

var currencyVar = Int(0) 
var betVar = Int(0) 

viewDidLoad中

let currencyVar = defaults.integer(forKey: "currencySave") 

labelCurrency.text = String("$ \(currencyVar)") 

betVar = 0 
labelBet.text = String("$ \(betVar)") 

滑塊,信守你贏得的賭注時選擇下注金額

let currencyVar = defaults.integer(forKey: "currencySave") 
    let currentValue:String = String(Int(sender.value)) 
    betVar = Int(currentValue)! 

    labelBet.text = currentValue 


    labelSlider.maximumValue = Float(currencyVar) 
    labelSlider.minimumValue = Float(0) 
    labelBet.text = String("$ \(currentValue)") 

數學(這需要錢從你,你點擊「賭」,這意味着,任何東西會發生,如果你失去。)

self.currencyVar = self.currencyVar + self.betVar*2 
    self.labelBet.text = String("\(self.betVar*2)") 
    self.labelBet.textColor = UIColor.green 

我的救命整數的方式

defaults.set(currencyVar, forKey: "currencySave") 
    defaults.synchronize() 

回答

0

看起來您正在創建具有相同名稱的局部變量,因此該屬性被忽略。

在頂級聲明

var currencyVar = 0 // the compiler infer the Int type. 

viewDidLoad刪除let

self.currencyVar = defaults.integer(forKey: "currencySave") 

滑塊,信守你..​​.只使用實例變量,刪除整條生產線

let cur rencyVar = defaults.integer(forKey:「currencySave」)

並添加self(儘管它不是必需的)來表示屬性。

labelSlider.maximumValue = Float(self.currencyVar) 
+0

謝謝!非常感謝您的快速回復。它真的幫助我,現在它完全正常工作。現在我手上有一位經驗豐富的程序員。如果我想製作某種統計系統呢?在哪裏我可以看到投注,最好的贏了和東西。 我正在考慮創建一個獨特的Userdefaults關鍵字,每次添加一個;一個變量? - 如果我能找到尊重你的方式,你會得到我的名聲。 –

+0

對於收集大量數據的統計系統,我更喜歡Core Data。 – vadian

+0

這只是3-4個統計數字,不能成爲圖表或其他東西。但如果你這樣說,我會爲谷歌核心數據谷歌,感謝您的答案! –