2017-03-01 5 views
-1

저는 Xcode를 처음 사용하고 있으며 현재 "바나나/돈"금액을 가지고있는 앱을 만들고 있습니다. 그 곳에서 동전을 뒤집을 수 있으며 배당 2 배나 베팅을 잃을 수 있습니다. (단지 경험치)Swift UserDefaults (2017)

내 게임이 제대로 작동하고 있습니다. 이제 앱이 닫히고 시작할 때마다 통화를 저장하려고합니다. NSUserDefaults를 사용합니다.

내 NSUserDefaults를 설정 했으므로 작동합니다. 마지막으로 앱을 종료 한 통화가 표시되며 0과 내 통화 사이에서만 내기가 가능합니다. - 위대한 분이 십니다!

그러나 전체 통화가 표시되고 모든 통화를 내기 할 수 있지만 그 뒤의 수학은 여전히 ​​어려움을 겪고 있습니다. 변수를 만들 때 앱이 닫히면 정수 값이 0으로 되돌아갑니다. 왜냐하면 그 값이 바로 내 viewDidLoad 위에 선언 되었기 때문입니다.

이해가 되십니까? 30 가지 바나나가 있고 30 가지 바나나를 걸 겠어. 내가 이기면 총 30 개의 바나나를 먹을 것이고, 내가 잃어버린다면 바나나를 먹을거야. (정수가 어떤 이유로 0으로 설정 됨)

마지막으로 저장된 정수로 정수를 설정하는 방법이 필요합니다. "currencySave". - 앱을 처음 열었는지 감지 할 방법이 필요합니다. 그렇다면 일정한 정수/통화로 시작해야합니다.

코드 :

내 모든 변수는 정수 여야합니다. viewDidLoad에

let defaults = UserDefaults.standard 

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

의 viewDidLoad

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

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() 

답변