class Person: NSObject,Codable {
var name:String
var age:String
init(name: String, age: String) {
self.name = name
self.age = age
}
}
保存
Data型で保存する必要があるため一度JSONEncoderでData型に変換し保存します。
var person = Person(name: "nona", age: "15")
func save(){
let jsonEncoder = JSONEncoder()
if let saveData = try? jsonEncoder.encode(person){
let defaults = UserDefaults.standard
defaults.set(saveData, forKey: "person")
}else{
print("Failed to save person")
}
}
読み出し
保存の逆でData型で読み出したものをdecodeして元のインスタンスに戻しています。
func load(){
var loadPerson:Person?
let defaults = UserDefaults.standard
if let savedPerson = defaults.object(forKey: "person") as? Data{
let jsonDecoder = JSONDecoder()
do{
loadPerson = try jsonDecoder.decode(Person.self, from: savedPerson)
//デバッグ用に出力しています
print("Name:\(loadPerson?.name),\(loadPerson?.age)")
}catch{
print("Failed to load people")
}
}
}
コメント