[IOS] UserDefaults에 dictionary를 저장하는 방법
UserDefaults에 dictionary를 저장하는 방법은 dictionary를 JSON 형태로 직렬화하여 저장하는 방법을 사용합니다.
먼저, 저장하고자 하는 dictionary를 JSON 형태로 변환합니다:
// 저장할 딕셔너리 생성
let myDictionary: [String: Any] = [
"name": "John Doe",
"age": 30,
"isPremiumUser": true
]
// 딕셔너리를 JSON 데이터로 직렬화
do {
let jsonData = try JSONSerialization.data(withJSONObject: myDictionary, options: [])
// JSON 데이터를 문자열로 변환
if let jsonString = String(data: jsonData, encoding: .utf8) {
// UserDefaults에 JSON 문자열 저장
UserDefaults.standard.set(jsonString, forKey: "myDictionaryKey")
}
} catch {
print("Error serializing dictionary to JSON: \(error)")
}
이제 위의 코드를 사용하여 dictionary를 JSON 문자열로 변환하여 UserDefaults에 저장합니다.
다음은 UserDefaults에서 저장된 JSON 문자열을 다시 dictionary로 변환하여 불러오는 방법입니다:
// UserDefaults에서 JSON 문자열 불러오기
if let jsonString = UserDefaults.standard.string(forKey: "myDictionaryKey") {
if let jsonData = jsonString.data(using: .utf8) {
do {
// JSON 데이터를 dictionary로 역직렬화
if let storedDictionary = try JSONSerialization.jsonObject(with: jsonData, options: []) as? [String: Any] {
print("Stored Dictionary: \(storedDictionary)")
}
} catch {
print("Error deserializing JSON to dictionary: \(error)")
}
}
}
위의 코드에서, UserDefaults에서 저장된 JSON 문자열을 불러와 다시 JSON 데이터로 변환한 후, 이를 dictionary로 역직렬화합니다. 이렇게 하면 UserDefaults에 dictionary를 저장하고 불러올 수 있습니다. 단, 저장하는 값과 불러오는 값의 형식을 일관성 있게 유지해야 합니다.