250x250
반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Archives
Today
Total
관리 메뉴

수니의 개발새발

[iOS/Swift] UserDefaults 반환/저장하기 (feat. 자동 로그인 여부 저장) 본문

iOS - Swift

[iOS/Swift] UserDefaults 반환/저장하기 (feat. 자동 로그인 여부 저장)

개발자 수니 2022. 6. 9. 23:09
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
반응형
Comments