๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐ŸŽ iOS/iOS

[iOS] UserDefaults๋ž€?

์•ˆ๋…•ํ•˜์„ธ์š”! ํ‹ฐ์Šคํ† ๋ฆฌ ์ฒซ ๊ธ€๋กœ UserDefaults์— ๋Œ€ํ•ด ์“ฐ๊ฒŒ ๋˜์—ˆ๋„ค์š”,,

ํ‹ฐ์Šคํ† ๋ฆฌ๋ฅผ ๊พธ์ค€ํžˆ ์จ๋ณด์ž๋Š” ์ƒˆํ•ด ๋‹ค์ง์„ ํ•˜๋ฉฐ..UserDefaults์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค..

UserDefaults๋ž€?๐Ÿค”

๋จผ์ €, ์• ํ”Œ ๊ณต์‹ ๋ฌธ์„œ์—๋Š” UserDefaults๊ฐ€ ์–ด๋–ป๊ฒŒ ์ •์˜ ๋˜์–ด์žˆ์„๊นŒ์š”??

 

 

์•ฑ ์‹คํ–‰ ์ „๋ฐ˜์— ๊ฑธ์ณ key-value ์Œ์„ ์ง€์†์ ์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.

์ •๋„๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋„ค์š”!

 

์•ฑ์—์„œ ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ๋ณด๊ด€ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๋„คํŠธ์›Œํฌ ์„œ๋ฒ„ ์ด์šฉ, CoreData, UserDefaults ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ์ค‘ UserDefaults ๋Š” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋ฉด์„œ,

์•ฑ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๊ธฐ๋ณธ ์ €์žฅ์†Œ (default database)์— ์ ‘๊ทผํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๊ณ , ๊ฐ€์ ธ์˜ค๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

 

๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด, ๋กœ์ปฌ์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!

 

UserDefaults๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์•ฑ์˜ ์–ด๋Š ๊ณณ์—์„œ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ฝ๊ณ  ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํŽ˜์ด์ง€์— ๋„˜์–ด๊ฐ”๋‹ค ์™€๋„, ๊ทธ๋ฆฌ๊ณ  ์•ฑ์„ ๊ป๋‹ค๊ฐ€ ์ผœ๋„ UserDefaults์— ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋Š” ์‚ด์•„์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ๊ธฐ๋ณธ ์„ค์ •์ด๋ผ๋˜์ง€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋ณธ์ •๋ณด ๋“ฑ์„ ์ €์žฅํ•˜๋Š”๋ฐ ์ ํ•ฉํ•  ๊ฒƒ ๊ฐ™์•„์š”!

 

๐Ÿ› UserDefaults๋ฅผ ์‚ฌ์šฉํ•ด๋ด…์‹œ๋‹ค!

 

๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์—์„œ ์•„๋ž˜ ํ™”๋ฉด๊ณผ ๊ฐ™์ด

๋กœ๊ทธ์ธ ์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ์„œ ์ž…๋ ฅ๋ฐ›์€ ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” String๊ฐ’์„ UserDefaults์— ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€

๋กœ๊ทธ์ธ ์„ฑ๊ณต ์‹œ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒฐ๊ณผ ํ™”๋ฉด์—์„œ ์ €์žฅํ•ด๋‘์—ˆ๋˜ ๊ฐ’์„ Label๋กœ ๋„์›Œ์ฃผ๋Š” ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค! 

 

UserDefaults๋Š” [๋ฐ์ดํ„ฐ, ํ‚ค(key)]์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ key์˜ ๊ฐ’์€ String(๋ฌธ์ž์—ด)์ž…๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ UserDefaults๋ฅผ ์ด์šฉํ•ด์„œ ํ•˜๊ณ  ์‹ถ์€ ์ผ์€

์œ ์ €์˜ ์ด๋ฆ„์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์„œ ๊ฒฐ๊ณผ ํ™”๋ฉด์— ๋„์šฐ๋Š” ๊ฒƒ์ด์ฃ ?? ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— set๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

if response.data != nil {
                    UserDefaults.standard.set(self.nameTextField.text, forKey: "userName")
                    self.simpleAlert(title: "๋กœ๊ทธ์ธ", message: response.message )
                }

 

์œ„์˜ ์ฝ”๋“œ๋Š” SignInVC์—์„œ ์„œ๋ฒ„ ํ†ต์‹ ์„ ์ฒ˜๋ฆฌํ•˜๋Š” requestLogin() ํ•จ์ˆ˜ ์•ˆ์— ์ ์–ด์ค€ ์ฝ”๋“œ์ธ๋ฐ์š”,

๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ nil์ด ์•„๋‹ˆ๋ผ๋ฉด ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ–ˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์œผ๋‹ˆ set๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ nameTextField์— ์ž…๋ ฅ๋ฐ›์€ ์œ ์ €์ด๋ฆ„์„ ์ €์žฅํ•ด์ค๋‹ˆ๋‹ค.

์ด๋•Œ ์ €๋Š” key๋ฅผ userName์ด๋ผ๊ณ  ์ •ํ•ด์ฃผ์—ˆ๋Š”๋ฐ, ์š” ๋ถ€๋ถ„์— ํ‚ค ๊ฐ’์œผ๋กœ ์“ฐ๊ณ  ์‹ถ์€ ๋ฌธ์ž์—ด์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

 

 

์ด์ œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ์ธ userName ์ •๋ณด๋ฅผ ์ €์žฅํ–ˆ์œผ๋‹ˆ ์ €์žฅํ•ด๋‘” ๊ฑธ ๊ฐ€์ ธ์™€์„œ ๋„์šฐ๋ฉด ๋˜๊ฒ ์ ธ??

์š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„์€ ๊ฒฐ๊ณผํ™”๋ฉด์ด๋‹ˆ ResultVC์—์„œ

func setNameInLabel(){
        if let userName = UserDefaults.standard.string(forKey: "userName") {
            nameLabel.text = "\(userName)๋‹˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!"
            nameLabel.sizeToFit()
        }

์œ„์™€ ๊ฐ™์ด key๊ฐ’์„ ์ด์šฉํ•ด์„œ ์ €์žฅํ•ด๋‘” ๋ฐ์ดํ„ฐ๋ฅผ Stringํƒ€์ž…์œผ๋กœ ๊ฐ€์ ธ์™€ ์›ํ•˜๋Š” ์œ„์น˜์ธ nameLabel์— ๋„ฃ์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค!

 


์ฐธ๊ณ ์ž๋ฃŒ

 

Apple Developer Documentation

 

developer.apple.com

 

 

[iOS] UserDefaults ์‚ฌ์šฉํ•˜๊ธฐ

2-3๋‹ฌ ์ „ ๊ทผ๋ฌด์ค‘ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ฒ˜์Œ์œผ๋กœ UserDefaults๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์•˜๋‹ค์‚ฌ์ง„ ๋ฐ์ดํ„ฐ์™€ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋””๋ฐ”์ด์Šค์— ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ž‘์—…์ด ํ•„์š”ํ–ˆ๋Š”๋ฐ ์„œ๋ฒ„๊ฐ€ ์—†์ด ๊ฐœ๋ฐœํ•  ๋•Œ์˜€๊ธฐ์— UserDefaults ๋ฅผ ์‚ฌ

velog.io

 

 

iOS ) ์™•์ดˆ๋ณด๋ฅผ ์œ„ํ•œ User Defaults์‚ฌ์šฉํ•ด๋ณด๊ธฐ(switch)

์•ˆ๋…•ํ•˜์„ธ์š” :) ์˜ค๋Š˜์€ UserDefaults์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณผ๊ฒŒ์š”!! UserDefaults๊ฐ€ ๋ฌด์—‡์ด๋ƒ!! ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•ด์„œ "๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ"๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋œ๋‹ต๋‹ˆ๋‹ค. UserDefaults๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ฑ์˜ ์–ด๋Š ๊ณณ์—์„œ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ

zeddios.tistory.com