大学の研究で使うため、学習ゲームアプリの開発をしています。
User defaultsを利用して得点をランキングに反映させたいです。
続けて問題を解くときちんとデータは残るのですが、
一度ホーム画面に戻ってから問題の画面を表示するとデータが初期化されます。
画面を消してもデータが残るようにしたいのですが、
どのようにすればうまくいくでしょうか?
let defaults = UserDefaults.standard
_ = defaults.array(forKey: "myList")
var tennsuu = [0,0,0,0,0,0,0,0,0,0,0]
if defaults.array(forKey: "myList") != nil {
tennsuu = defaults.object(forKey: "myList") as! [Int]
}
tennsuu[10] = correctCount*10
_ = tennsuu.sort { $0 > $1 }
defaults.set(tennsuu, forKey: "myList")
defaults.synchronize()
NSLogやif文を使って試したところ、
ホーム画面から問題画面に遷移した時点できちんとデータが読み込めていないということがわかりました。
しかし、ランキング画面は何度ホーム画面に戻っても問題なく表示することができます。
(一度消えたらその後のデータが表示されます)
ランキング画面での表示はこのように書いています。
let defaults = UserDefaults.standard
_ = defaults.array(forKey: "myList")
var tennsuu = [0,0,0,0,0,0,0,0,0,0,0]
if defaults.array(forKey: "myList") != nil {
tennsuu = defaults.array(forKey: "myList") as! [Int]
}
開発環境
ーxcode8
ーswift3
プログラミングは始めたばかりで基礎知識もほとんどありません。
教えていただけると嬉しいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/02/07 07:10
2017/02/07 11:30
退会済みユーザー
2017/02/08 15:02