์์ฝ
Userdefaults๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ฒฝ์ฐ ํน์ ".plist" ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฒ ๋ฉ๋๋ค. (๋ณดํต ์ฑ์ Library ํด๋ ์ Preferences ๋๋ ํ ๋ฆฌ์ ์์น). ์ด๋ plist๋ ํค-๊ฐ ํ์์ XML ํ์์ด๊ธฐ์ 1์ฐจ์์ ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ํ ๋ฐ์ดํฐ ํ์ (์: String, Int, Bool ๋ฑ)์ ์ ์ฅํ๊ธฐ ์ํ ๊ตฌ์กฐ๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ๋ฌผ๋ก ๋ฐ์ดํฐ๋ฅผ ํ๋ํ๋ ํค๋ฐธ๋ฅ ์์ผ๋ก ์ฃผ๋จน๊ตฌ๊ตฌ์์ผ๋ก ๋ฃ์ ์ ์์ง๋ง ์ด๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ํด๋ผ์ชฝ๊ณผ ๋ง์ง์๊ณ ๋ถํ์ํ ๊ณต๊ฐ ๋ํ ์ฐจ์งํ๊ฒ ๋ฉ๋๋ค. ์๋ก ์ฐ๊ด์๋ ์ปค์คํ ๊ฐ์ฒด์ Codable์ ์ฑํํ๋ฉด Data ํ์ ์ผ๋ก Userdefaults์ ์ ์ฅํ ์ ์๊ฒ๋์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋ถ๊ฐ ์ค๋ช
UserDefaults์์ ์ ์ฅ๋๋ ๊ฐ์ ํ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก property list(plist) ์ด๋ค. plist์๋ NSData, NSString, NSNumber, NSDate, NSArray, or NSDictionary๋ฅผ ๋ฃ์ ์ ์๋ค. ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด Codable์ ํตํด NSData ํ์์ผ๋ก ๋ฃ์ด์ค๋ค. Codable์ ๋ฐ์ดํฐ๋ฅผ ํํ ํ์(์ฃผ๋ก JSON)๊ณผ Swift ๋ฐ์ดํฐ ํ์ ์ฌ์ด์์ ๋ณํํ๋ ๋ฐ ์ด์ ์ ๋ง์ถ์ด ๋ฐ์ดํฐ์ ์ง๋ ฌํ์ ์ญ์ง๋ ฌํ์ ๊ด์ฌํ๋ค.
// Codable ํ๋กํ ์ฝ์ ์ฑํํ์ ๊ฒฝ์ฐ
//struct๋ฅผ ํตํ ๋ฐ์ดํฐ ๊ด๋ฆฌ
struct ToDoItem: Codable {
let title: String
}
var toDoItems = TodDoItem()
// Encoding
if let encodedData = try? JSONEncoder().encode(toDoItems) {
UserDefaults.standard.set(encodedData, forKey: "toDoItems")
}
// Decoding
if let savedData = UserDefaults.standard.data(forKey: "toDoItems"),
let decodedItems = try? JSONDecoder().decode([ToDoItem].self, from: savedData) {
toDoItems = decodedItems
}
'๐ฆ Flutter' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Combine | 2. Operators and Subjects (0) | 2024.05.07 |
---|---|
ViewController์ ์๋ช ์ฃผ๊ธฐ (0) | 2024.05.06 |
| Combine | 1. Getting Started (0) | 2024.05.05 |
| WWDC 19 | Introducing SwiftUI - Building Your First App (0) | 2024.04.23 |
WWDC 19 SwiftUI Essentials (0) | 2024.04.22 |