以下の様に構造体の配列をUserDefaults.standardに保存したいと思ったのですが、実行した時に[User Defaults] Attempt to set a non-property-listの様なエラーが出ました。コードは以下になります。
Swift
1struct Preference { 2 static let userDefault = UserDefaults.standard 3 4 struct Key { 5 static let All_data = "all_data" 6 } 7} 8 9extension Preference { 10 11 static var all_data:[time_log]? { 12 get{ 13 return userDefault.object(forKey: Key.All_data) as? [time_log] 14 15 } 16 set { 17 userDefault.set(newValue, forKey: Key.All_data) 18 userDefault.synchronize() 19 } 20 21 } 22 23} 24 25struct time_log { 26 27 var start_time:Date! 28 var name:String! 29 var dur:Double! 30 31 32} 33
この様に宣言しておき、以下の様に使おうとしました。
Swift
1var logs = [time_log]() 2 3 4logs.append(time_log(start_time: hope, name: huga, dur: piyo)) 5Preference.all_data = logs //これでエラー
そもそもこの様な形で自分の作った構造体をUserDefaultsに保存することはできないのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。