2017-07-15 8 views
0

私はSwiftには新しく、すでにこのトピックを検索しようとしましたが、どのように呼び出されたのか分かりませんので、今すぐ質問しています。 Cookie Clickerのようなものを作ってみたい。私がボタンを押すたびに、より多くのお金があります。 私はすでにアプリを開くときに "お金"を貯めることができましたが、ボタンをクリックするとその "古い"お金に追加します。誰もこれを行う方法を知っていますか?ここでアプリを開くときに古い変数を変更または上げる方法は?

は私のコードです:

import UIKit 
import AVFoundation 

var employers = 0 
var money = 0 

class ViewController: UIViewController { 

    @IBOutlet var score: UILabel! 
    @IBOutlet var moneysecond: UILabel! 
    @IBOutlet var employees: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    @IBAction func clickbutton(_ sender: Any) { 
     money = money + 20 
     score.text = "$\(money).-" 

     UserDefaults.standard.set(score.text, forKey: "dollar") 
     score.text = "$\(money).-" 
    } 

    override func viewDidAppear(_ animated: Bool) { 
     if let x = UserDefaults.standard.object(forKey: "dollar") as? String { 
      score.text = x 
     } 
    } 
} 

enter image description here

答えて

1

例えば、UserDefaults一部Stringを格納しますがmoneyの実際の値はいけませんInt。そして最初にお金の価値を設定してください。

今あなたが保存されている値に表示されるテキストを設定し、その後、クリックであなたは、したがって、あなたは何の情報が失われ、UserDefaultsから読み込まれた値で行うにはを持っていないmoney変数をインクリメント最後のアプリケーション実行中に以前に設定されていました。

提案:viewDidAppearmoney

  • UserDefaults.standard.integer(forKey: "dollar")の値を読み取るViewController
  • 変化viewDidLoad

    • 移動moneyclickbutton削除テキスト
    • を設定するmoneyの値を使用し第1または第2のscore.text割り当ておよび保存しないscore.textしかしUserDefaults
  • +0

    Thxを同じ考えです!それは動作します、残っている唯一の問題は、ボタンをクリックしたときにラベルが表示されることです。ボタンをクリックする前にラベルを表示させるにはどうしたらいいですか? –

    0

    money実はこれはluk2302の提案としてではなく、コード

    class ViewController: UIViewController { 
    
        @IBOutlet var score: UILabel! 
        @IBOutlet var moneysecond: UILabel! 
        @IBOutlet var employees: UILabel! 
    
        var money = 0 
        var employers = 0 
    
        override func viewDidLoad() { 
         super.viewDidLoad() 
         money = UserDefaults.standard.integer(forKey: "dollar") 
        } 
    
    
        @IBAction func clickbutton(_ sender: Any) { 
         money = += 20 
         score.text = "$\(money).-" 
         UserDefaults.standard.set(money, forKey: "dollar") 
    
        } 
        override func viewWillAppear(_ animated: Bool) { 
         super.viewWillAppear(animated) 
         score.text = "$\(money).-" 
        } 
    } 
    
    +0

    Thx!それは動作します、残っている唯一の問題は、ボタンをクリックしたときにラベルが表示されることです。ボタンをクリックする前にラベルを表示させるにはどうしたらいいですか? –

    +0

    Thx!それは動作します、残っている唯一の問題は、ボタンをクリックしたときにラベルが表示されることです。ボタンをクリックする前にラベルを表示させるにはどうしたらいいですか? –

    +0

    コードは、ビューが表示されたときに保存された値を表示することになっています。 – vadian

    関連する問題