UserDefaults
UserDefaults란
UserDefault란 구글 문서에 따르면 앱 실행 시 지속적으로 키-값 쌍을 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스 입니다.
그럼 언제 필요하고 어떻게 사용하면 되는걸까요?
주로 앱의 영구 저장소를 사용해야 될때 입니다. 빠르고 간단한 데이터를 저장하는데 적합하고 앱의 종료와는 무관하게 접근이 가능합니다.
앱의 초기 사용자에 대해 예를 들면
- 사용자 튜토리얼
- 회원가입 & 로그인
- 매인 화면 이동
이와 같은 순서로 화면 전환이 이루어지게 되는데 초기 사용자가 아닌 일반 유저의 경우,
앞서 진행한 1번 2번의 화면은 보여줄 필요가 없기 때문에 이와 같은 정보를 저장하는데 적합 합니다.
UserDefaults 특징
- value를 가져오기 위해 key ,value를 설정하는것
- 앱의 종료와 상관없이 저장이된다.
- ex)
- 간단한 설정을 진행할떄 사용된다. 로그인시 사용자의 회원 정보를 저장하는데?
- 앱을 처음 실행할떄 저장이 필요한 것들에 주로 사용됨 (toggle)
UserDefaults 적용
로그인시 패스워드 정보를 저장하기 위해서 애플에서 제공하는 UserDefaults의 많고 많은 매서드 중 3개만 정리하자면
// Gnoam 키값으로 새로운 비밀번호로 업데이트 됩니다.
UserDefaults.standard.set(passWord, forKey: "Gnoam")
// 등록된 비밀번호를 삭제합니다.
UserDefaults.standard.removeObject(forKey: "Gnoam")
// 등록된 비밀번호를 가져옵니다
UserDefaults.standard.object(forKey: "Gnoam")
끝... 완성 이거면 되었다 난 쉬러감 ㅅㄱ
하면 편하겠지만 진행하면서 몇가지 문제점을 찾았습니다.
- UserDefault의 set 사용시 첫번째 파라미터 값이 Any 타입이라고 어떤 타입이든지 다 저장되는것은 아님...저의 경우 UIButton의 입력 정보를 넣었더니 에러가 나타남
- object를 통해 value값을 가져올떄 타입이 Any타입으로 되어있었음 -> 이경우 타입 캐스팅을 해줘야 합니다.
- UserDefault를 테스트하다 알게된 내용으로 Any타입끼리는 값을 비교할 수가 없어 타입 캐스팅으로 비교를 원하는 값으로 변경해야 된다.
결과 이미지


참조 사이트
'iOS' 카테고리의 다른 글
[iOS] Concurrency(async & await) (0) | 2024.03.31 |
---|---|
[iOS] 새싹 프로젝트 (BoxOffice STEP3) #2 CollectionView 구현 (0) | 2024.03.24 |
[iOS] 새싹 프로젝트 (BoxOffice STEP3) #1 코드 베이스 화면 작업 (2) | 2024.03.15 |
[iOS] Hashable (0) | 2024.03.03 |
[iOS] 새싹 프로젝트 (BoxOffice STEP2) (1) | 2024.03.01 |
UserDefaults
UserDefaults란
UserDefault란 구글 문서에 따르면 앱 실행 시 지속적으로 키-값 쌍을 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스 입니다.
그럼 언제 필요하고 어떻게 사용하면 되는걸까요?
주로 앱의 영구 저장소를 사용해야 될때 입니다. 빠르고 간단한 데이터를 저장하는데 적합하고 앱의 종료와는 무관하게 접근이 가능합니다.
앱의 초기 사용자에 대해 예를 들면
- 사용자 튜토리얼
- 회원가입 & 로그인
- 매인 화면 이동
이와 같은 순서로 화면 전환이 이루어지게 되는데 초기 사용자가 아닌 일반 유저의 경우,
앞서 진행한 1번 2번의 화면은 보여줄 필요가 없기 때문에 이와 같은 정보를 저장하는데 적합 합니다.
UserDefaults 특징
- value를 가져오기 위해 key ,value를 설정하는것
- 앱의 종료와 상관없이 저장이된다.
- ex)
- 간단한 설정을 진행할떄 사용된다. 로그인시 사용자의 회원 정보를 저장하는데?
- 앱을 처음 실행할떄 저장이 필요한 것들에 주로 사용됨 (toggle)
UserDefaults 적용
로그인시 패스워드 정보를 저장하기 위해서 애플에서 제공하는 UserDefaults의 많고 많은 매서드 중 3개만 정리하자면
// Gnoam 키값으로 새로운 비밀번호로 업데이트 됩니다.
UserDefaults.standard.set(passWord, forKey: "Gnoam")
// 등록된 비밀번호를 삭제합니다.
UserDefaults.standard.removeObject(forKey: "Gnoam")
// 등록된 비밀번호를 가져옵니다
UserDefaults.standard.object(forKey: "Gnoam")
끝... 완성 이거면 되었다 난 쉬러감 ㅅㄱ
하면 편하겠지만 진행하면서 몇가지 문제점을 찾았습니다.
- UserDefault의 set 사용시 첫번째 파라미터 값이 Any 타입이라고 어떤 타입이든지 다 저장되는것은 아님...저의 경우 UIButton의 입력 정보를 넣었더니 에러가 나타남
- object를 통해 value값을 가져올떄 타입이 Any타입으로 되어있었음 -> 이경우 타입 캐스팅을 해줘야 합니다.
- UserDefault를 테스트하다 알게된 내용으로 Any타입끼리는 값을 비교할 수가 없어 타입 캐스팅으로 비교를 원하는 값으로 변경해야 된다.
결과 이미지


참조 사이트
'iOS' 카테고리의 다른 글
[iOS] Concurrency(async & await) (0) | 2024.03.31 |
---|---|
[iOS] 새싹 프로젝트 (BoxOffice STEP3) #2 CollectionView 구현 (0) | 2024.03.24 |
[iOS] 새싹 프로젝트 (BoxOffice STEP3) #1 코드 베이스 화면 작업 (2) | 2024.03.15 |
[iOS] Hashable (0) | 2024.03.03 |
[iOS] 새싹 프로젝트 (BoxOffice STEP2) (1) | 2024.03.01 |