教えてください。
UserDefault に、アプリ終了時に値を保存して、アプリ起動時にそれを読み込むため、AppDelegate.swiftに以下のようなコードを書いています。
import
1import UIKit 2 3@UIApplicationMain 4class AppDelegate: UIResponder, UIApplicationDelegate { 5 6 var window: UIWindow? 7 8 let userDefaults:UserDefaults = UserDefaults.standard 9 10 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 11 // Override point for customization after application launch. 12 13 //アプリ起動時にhogeをuserDefaultから読み込む 14 hoge = Double(userDefaults.integer(forKey: "Hoge")) 15 16 return true 17 } 18 19//中略 20 21 func applicationWillTerminate(_ application: UIApplication) { 22 // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 23 24 //アプリ終了時にhogeをuserDefaultに保存する 25 userDefaults.set(hoge, forKey: "Hoge") 26 27 } 28}
保存する hoge という変数の型は Double でグローバルで宣言していて、0〜1.0の0.1間隔の数値になります。
0 か 1.0 なら覚えているらしく、その時だけ前回の数値が引き継がれます。
保存する際に勝手に Int(整数)として扱われているんじゃないかと思います。
読み出しの時に、Double 型だと指定しているつもりなのですが。
なお、書き込み時のコードとして以下も試してみたのですが、ダメでした。
userDefaults.set(Double(hoge), forKey: "Hoge")
なにか解決法があれば教えてください。
よろしくお願い致します。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。