이번 포스팅에서는
UserDefaults를 사용하여
앱이 삭제되기 전까지
기본 자료형 타입의 데이터를
디바이스에 저장시킬수 있는 방법에 대해 알아보겠다.
UserDefaults는
사용자 기본 설정 같은
단일 데이터 값을 저장할때 주로 사용하고,
싱글톤 패턴으로 접근할 수 있어
어디서든 접근이 가능하다.
일반적으로 shared라는 타입프로퍼티로
진행하는 편이지만
Apple에서는 미리
standard라는 타입 프로퍼티로
싱글톤 패턴을 진행하게끔 마련해놓았다.
SomeClass.shared
.
.
.
UserDefaults.standard
데이터를 저장하는 법에 대해 알아보자면
일단 싱글톤 객체로 접근한 다음
set 이라는 메소드를 사용한다.
그리고 첫번째 인자에는
저장을 하고자 하는
데이터의 값을 넣어주고
두번째 인자에는 추후에 데이터를 꺼낼때 필요한
key값을 String 타입으로 넣어주면 된다.
(key 값은 저장해놓은 값을 찾을 수 있는
하나의 열쇠, 수단이라고 생각하면 된다.)
UserDefaults.standard.setValue("SomeValue", forKey: "ThisIsKey") // "SomeValue" 라는 String 타입의 값을 "ThisIsKey" 라는 key값으로 저장
저장을 했다면
이제는 해당 key값을 사용해서
데이터를 불러오는 방법에 대해 알아보겠다.
저장할때와 동일하게 standard로 접근한다.
그리고나서 set이 아닌 다른 메소드들을 조금 살펴보겠다.
그러면 아래와 같이
소문자 형식으로 데이터 타입명을
이름으로 가지고 있는 메소드들이 있다.
(Optional<해당타입>을 return 하고있다.)
불러올 데이터 타입의 맞는 메소드를 선택한 뒤에
저장해두었던 key값을 입력하면 되는데
방금 String 타입의 값을 저장했으니
string 메소드를 선택한 뒤에
key 값으로 저장해두었던 "ThisIsKey"를 전달한다.
let savedData = UserDefaults.standard.string(forKey: "ThisIsKey")
savedData를 print 해보면
Optional("SomeValue")
라는 값이 찍히는게 보일것이다.
제시한 해당 key 값을 key로 가지고 있는
Data가 없을때 메소드는 nil을 반환하기 때문에
Optional binding을 사용해서
안전하게 Data를 꺼내 쓰는것이 바람직하다.
if let saveData = UserDefaults.standard.string(forKey: "ThisIsKey") {
...
}
'IOS' 카테고리의 다른 글
[IOS] AVPlayer (0) | 2021.01.10 |
---|---|
[IOS] Timer (0) | 2021.01.07 |
[IOS] UserInterfaceStyle (2) (0) | 2021.01.04 |
[IOS] UIColor Extension (0) | 2021.01.03 |
[IOS] 키보드 내리기 with TextField (0) | 2020.12.23 |