Trulyawesome
Swift Userdefault로 데이터 저장하기 본문
데이터 저장하기
앱을 개발하면서 데이터를 저장하려고 하면 저장소가 필요한데 오늘은 Firebase가 아닌 핸드폰에 간단하게 저장되는 userdefault를 사용해보려고 합니다.
1
2
3
4
5
6
7
8
9
10
11
|
func saveAllData() {
let data = todoList.map {
[
"title": $0.title,
"content": $0.contents
]
}
let userDefaults = UserDefaults.standard
userDefaults.set(data, forKey: "items")
userDefaults.synchronize()
}
|
cs |
데이터를 저장하기 위해서 key, value값이 필요합니다. Todolist에서는 todo제목과 내용이 필요하므로 title과 content를 value값으로 설정하고 key값은 items로 설정하였습니다. data변수에 저장할 element를 map함수를 이용해서 지정해줍니다. 그리고 userdefaults = UserDefaults.standard를 설정해주고 set함수를 이용해 데이터를 설정해주고 sync함수를 불러와주면 저장이 완료됩니다.
그리고 난 후 viewDidAppear()에 함수를 적어주면 끝납니다.
데이터 불러오기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
func loadAllData() {
let userDefaults = UserDefaults.standard
guard let data = userDefaults.object(forKey: "items") as? [[String: AnyObject]] else {return}
print(data.description)
todoList = data.map {
let title = $0["title"] as? String ?? ""
let content = $0["content"] as? String ?? ""
let isCheck = $0["isChecked"] as? Bool ?? false
return Todo(title: title, contents: content, isChecked: isCheck)
}
}
|
cs |
앱을 실행할때 전에 저장했던 데이터를 다시 불러오기 위해서는 불러오는 함수를 작성해 주어야 합니다. 먼저 userDefault를 설정해주시고
key값인 items의 value를 불러오기 위해서 data를 설정해줍니다. 그후 todoList에 다시 저장했던 데이터를 넣어주는 작업을 합니다.
그후 init을 return 해줍니다. 그러고 난후 이 함수를 viewDidLoad()에 넣어주면 완성입니다^.^
'프로그래밍 > iOS' 카테고리의 다른 글
iOS 로그인 화면 구성 (0) | 2020.02.08 |
---|---|
TodoApp 제작(Swift)2 (0) | 2020.01.24 |
TodoApp 제작(Swift)1 (0) | 2020.01.18 |
Firebase 데이터 입력 및 불러오기 (0) | 2019.12.29 |
Firebase 설정하기 (0) | 2019.12.28 |