UserDefaults

κΉ€λ™ν˜„Β·2022λ…„ 9μ›” 10일
0

iOS

λͺ©λ‘ 보기
8/13


앱을 μ’…λ£Œν•˜κ³  λ‹€μ‹œ μ‹€ν–‰ μ‹œμΌ°μ„ λ•Œ
μ’…λ£Œλ˜κΈ° 전에 μ €μž₯이 λ˜μ—ˆλ˜ 데이터λ₯Ό ν•„μš”λ‘œ ν•˜λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ 졜근 검색어λ₯Ό λ…ΈμΆœμ‹œν‚€κ³ μž ν•˜λŠ” 화면을 λ΄λ³ΌκΉŒμš”?
κ²€μƒ‰ν™”λ©΄μ—μ„œ λͺ‡κ°œμ˜ 단어λ₯Ό 연달아 κ²€μƒ‰ν•˜κ³ 
졜근 검색어 μ˜μ—­μ„ 확인 해보면
κ²€μƒ‰ν–ˆλ˜ νžˆμŠ€ν† λ¦¬λ₯Ό 확인할 수 μžˆμ„ 것 μž…λ‹ˆλ‹€.

그리고 앱을 μ’…λ£Œ μ‹œν‚€κ³  λ‹€μ‹œ μ‹€ν–‰ μ‹œμΌ°μ„ λ•Œ
λŒ€λΆ€λΆ„μ˜ 앱은 νžˆμŠ€ν† λ¦¬κ°€ κ·ΈλŒ€λ‘œ μœ μ§€λ˜κ³  μžˆλ‹€λŠ” 점도 확인 κ°€λŠ₯ ν•˜κ² μ£ .

κ·Έλ ‡λ‹€λ©΄ iOS μ•±μ—μ„œ 앱이 μ’…λ£Œ λ˜μ—ˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³  데이터λ₯Ό μœ μ§€μ‹œν‚¬ 수 μžˆλŠ” 방법은 μ–΄λ–€ 것이 μžˆμ„κΉŒμš”?
μ˜€λŠ˜μ€ λ°”λ‘œ κ·Έ 방법쀑에 ν•˜λ‚˜μΈ
UserDefaults에 λŒ€ν•΄μ„œ 이야기 해보렀 ν•©λ‹ˆλ‹€.

UserDefaultsλŠ” 싱글톀 νŒ¨ν„΄μœΌλ‘œ μ ‘κ·Όν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ–΄ μžˆμ–΄ μ–΄λ””μ„œλ“  접근이 κ°€λŠ₯ν•©λ‹ˆλ‹€.
μ•„λž˜ μ½”λ“œμ™€ 같이 standard둜 μ ‘κ·Ό ν•˜λ©΄,
UserDefaults의 μΈμŠ€ν„΄μŠ€μ— 접근이 κ°€λŠ₯ν•˜μ£ .

UserDefaults.standard

Set

λ¨Όμ € 데이터λ₯Ό μ €μž₯ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.
μœ„μ—μ„œ λ§μ”€λ“œλ¦° μ‹±κΈ€ν†€μ˜ μΈμŠ€ν„΄μŠ€λ‘œ μ ‘κ·Όν•˜λ©΄
set μ΄λΌλŠ” λ©”μ†Œλ“œλ₯Ό 호좜 ν•  수 있게 λ˜λŠ”λ°μš”.
첫번째 μΈμžμ—λŠ” μ €μž₯을 ν•˜κ³ μž ν•˜λŠ” λ°μ΄ν„°μ˜ 값을 λ„£μ–΄μ£Όλ©΄ λ©λ‹ˆλ‹€.
그리고 λ‘λ²ˆμ§Έ μΈμžμ—λŠ” 좔후에 데이터λ₯Ό κΊΌλ‚Όλ•Œ ν•„μš”ν•œ
key값을 String νƒ€μž…μœΌλ‘œ λ„£μ–΄μ£Όλ©΄ λ©λ‹ˆλ‹€.

πŸ”‘ μ—¬κΈ°μ„œ key 값은 μ €μž₯해놓은 값을 찾을 수 μžˆλŠ” ν•˜λ‚˜μ˜ μ—΄μ‡ , μˆ˜λ‹¨μ΄λΌκ³  μƒκ°ν•˜λ©΄ λ©λ‹ˆλ‹€.

Get

데이터λ₯Ό μ €μž₯ ν–ˆλ‹€λ©΄
μ΄μ œλŠ” ν•΄λ‹Ή key값을 μ‚¬μš©ν•΄μ„œ
데이터λ₯Ό λΆˆλŸ¬μ˜€λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.
μ €μž₯ν•  λ•Œμ™€ λ™μΌν•˜κ²Œ standard둜 μ ‘κ·Όν•˜λ©΄,
데이터 νƒ€μž…λͺ…을 μ΄λ¦„μœΌλ‘œ 가지고 μžˆλŠ” λ©”μ†Œλ“œλ“€μ΄ μžˆλŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
뢈러올 데이터 νƒ€μž…μ— λ§žλŠ” λ©”μ„œλ“œλ₯Ό μ„ νƒν•œ 뒀에
μ €μž₯ν•΄λ‘μ—ˆλ˜ key값을 μž…λ ₯ν•˜λ©΄ λ©λ‹ˆλ‹€.
Optional<ν•΄λ‹Ήνƒ€μž…>을 λ°˜ν™˜ν•˜κ³  μžˆλŠ” κ²ƒμœΌλ‘œ 확인 λ˜λ„€μš”.

μ΄μœ κ°€ λ¬΄μ—‡μΌκΉŒμš”?

μ €μž₯을 해놓은 데이터λ₯Ό λ½‘μ•„μ˜€κΈ° μœ„ν•΄ key 값을 μ œμ‹œν•˜κ²Œ λ©λ‹ˆλ‹€.
μ—¬κΈ°μ„œ μ œμ‹œν•œ key 값에 ν•΄λ‹Ήν•˜λŠ” 데이터가 무쑰건 μ‘΄μž¬ν•˜κ³  μžˆλ‹€κ³  보μž₯λ˜μ–΄ μžˆμ„κΉŒμš”?
닡변은 μ˜ˆμƒ ν•˜μ…¨κ² μ§€λ§Œ "μ•„λ‹™λ‹ˆλ‹€" μž…λ‹ˆλ‹€.

λ§Œμ•½ key 값에 ν•΄λ‹Ήν•˜λŠ” 데이터가 μ‘΄μž¬ν•˜κ³  μžˆμ§€ μ•Šμ€ 경우λ₯Ό λŒ€λΉ„ν•΄μ„œ
nil을 λ°˜ν™˜ν•  수 μžˆλ„λ‘ Optionalν•œ νƒ€μž…μ„ λ°˜ν™˜ν•˜κ²Œ λ˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

μ•ˆμ „ν•˜κ²Œ Optional Binding을 톡해 데이터λ₯Ό κ°€μ Έμ™€λ³΄μ„Έμš”!πŸ™Œ

if let saveData = UserDefaults.standard.string(forKey: "KeyStr") {
    ...
}
profile
iOS 개발자 κΉ€λ™ν˜„μž…λ‹ˆλ‹€ :)

0개의 λŒ“κΈ€