250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- enumerations
- SwiftGen
- algorithm
- flutter
- reetcode
- listview
- Extentsion
- basic
- dart
- tip
- ToDoRim
- OSLog
- IOS
- Equatable
- COMMIT
- Leetcode
- Swift
- keyWindow
- protocol
- it
- UIAccessibility
- designPattern
- toyproject
- GIT
- Widget
- github
- pubspec
- swiftlint
- pubspec.yaml
- xcode
Archives
- Today
- Total
수니의 개발새발
[iOS/Swift] UserDefaults 반환/저장하기 (feat. 자동 로그인 여부 저장) 본문
728x90
반응형
📌 이번 글은
UserDefaults 값을 반환하고, 저장하는 방법입니다.
UserDefaults
UserDefaults는 앱의 '데이터 저장소' 입니다.
여러 타입(Any)의 객체를 저장할 수 있고, 사용자 기본 설정과 같은 단일 데이터 값을 저장하고자 할 때 적합합니다.
저는 종종 자동 로그인 여부(isAutoLogin)를 저장할 때 사용합니다.
UserDefaults 값 저장
let defaults = UserDefaults.standard
defaults.set(true, forKey: "isAutoLogin")
UserDefaults 값 반환
let defaults = UserDefaults.standard
if let object = defaults.object(forKey: "isAutoLogin") {
print("자동 로그인 \(object)")
} else {
print("자동 로그인 값 없음")
}
👩🏻💻 응용
- 공통 클래스에 UserDefaults 반환/저장 공용 함수 정의
class Common {
/**
# (E) UserDefaultsKey
- Authors: suni
*/
enum UserDefaultsKey: String {
case isFirstEntryApp
case isAutoLogin
}
/**
# getUserDefaultsObject
- parameters:
- defaultsKey : 반환할 value의 UserDefaults Key - (E) Common.UserDefaultsKey
- Authors: suni
- Note: UserDefaults 값을 반환하는 공용 함수
*/
static func getUserDefaultsObject(forKey defaultsKey: UserDefaultsKey) -> Any? {
let defaults = UserDefaults.standard
if let object = defaults.object(forKey: defaultsKey.rawValue) {
return object
} else {
return nil
}
}
/**
# setUserDefaults
- parameters:
- value : 저장할 값
- defaultsKey : 저장할 value의 UserDefaults Key - (E) Common.UserDefaultsKey
- Authors: suni
- Note: UserDefaults 값을 저장하는 공용 함수
*/
static func setUserDefaults(_ value: Any?, forKey defaultsKey: UserDefaultsKey) {
let defaults = UserDefaults.standard
defaults.set(value, forKey: defaultsKey.rawValue)
}
}
- 사용
if let isAuto = Common.getUserDefaultsObject(forKey: .isAutoLogin) as? Bool {
print("자동 로그인 \(isAuto)")
} else {
print("자동 로그인 없음")
Common.setUserDefaults(false, forKey: .isAutoLogin) // 자동 로그인 false 저장
}
728x90
반응형
'iOS - Swift' 카테고리의 다른 글
[iOS/Swift] iOS13에서 keyWindow 경고 해결 (0) | 2023.12.22 |
---|---|
[iOS/Swift] Keychain으로 안전하게 데이터 저장/반환/삭제하기 (pod 'SwiftKeychainWrapper') (0) | 2022.06.10 |
[iOS/Swift] OSLog (with. extension) (0) | 2022.04.07 |
[Xcode/Swift] 전처리기, 전처리문(#if DEBUG) (with. Active Compilation Conditions) (0) | 2022.04.01 |
[iOS/Swift] SwiftLint 규칙 정리 (0) | 2022.03.27 |
Comments