Bibi's DevLog ๐ค๐
[Foundation] UserDefaults ๋ณธ๋ฌธ
[Foundation] UserDefaults
๋น๋น bibi 2022. 6. 17. 00:23UserDefaults
๊ณต์ ๋ฌธ์ https://developer.apple.com/documentation/foundation/userdefaults/
: ์ฑ ์คํ ๋์ ์ง์์ ์ผ๋ก ํค-๊ฐ ์์ ์ ์ฅํ ์ ์๋ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ธํฐํ์ด์ค.
class UserDefaults : NSObject
UserDefaults๋ ๊ธฐ๋ณธ ์์คํ ๊ณผ ์ํธ์์ฉํ๊ธฐ ์ํ ํ๋ก๊ทธ๋จ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ณธ ์์คํ ์ ์ฑ์ด ์ฌ์ฉ์๊ฐ ์ ํธํ๋ ๋์์ ์ปค์คํฐ๋ง์ด์ฆํ๋๋ก ํด ์ค๋๋ค. ์๋ฅผ ๋ค์ด, ๋น์ ์ ์ฌ์ฉ์๊ฐ ๊ทธ๋ค์ด ์ ํธํ๋ ์ธก์ ๋จ์๋ ๋ฏธ๋์ด ์ฌ์ ์๋๋ฅผ ๊ตฌ์ฒดํํ๋๋ก ํ ์ ์์ต๋๋ค. ์ฑ์ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ํ๋ผ๋ฏธํฐ์ ์งํฉ์ ๊ฐ๋ค์ ํ ๋นํจ์ผ๋ก์จ ์ด๋ฌํ ์ ํธ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด ํ๋ผ๋ฏธํฐ๋ค์ ๊ธฐ๋ณธ์ผ๋ก์ ์ฐธ์กฐ๋ฉ๋๋ค. ์๋ํ๋ฉด ์ด๋ค์ด ์ผ๋ฐ์ ์ผ๋ก ์ฑ์ ์์ ์์ ์ ๊ธฐ๋ณธ ์ํ๋ก ์ฌ์ฉ๋๊ฑฐ๋, ๊ธฐ๋ณธ์ ์ธ ๋์ ๋ฐฉ์์ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์คํ ์์ ์์, ์ฌ์ฉ์์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ๋น์ ์ด ์ฑ์ด ์ฌ์ฉํ๋ ๊ธฐ๋ณธ๊ฐ์ ์ฝ๊ธฐ ์ํด UserDefaults ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ญ์์ค. UserDefaults๋ ์ ๋ณด๋ฅผ ์บ์ฑํจ์ผ๋ก์จ, ๋น์ ์ด ๊ธฐ๋ณธ๊ฐ์ ํ์๋ก ํ ๋๋ง๋ค ์ฌ์ฉ์์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ ๋, ๊ทธ๊ฒ์ ๋น์ ์ ํ๋ก์ธ์ค์ ๋ฐ๋ผ ๋๊ธฐ์ ์ผ๋ก ๋ณํํ๋ฉฐ, ์๊ตฌ ์ ์ฅ์์ ๋ค๋ฅธ ํ๋ก์ธ์ค์๋ ๋น๋๊ธฐ์ ์ผ๋ก ๋ณํํฉ๋๋ค.
์ค์
ํ๊ฒฝ ์ค์ (์ ํธ) ํ์ ์์คํ ์ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ๋ ค๊ณ ์๋ํ์ง ๋ง์ญ์์ค. ์ ํธ ํ๋กํผํฐ ๋ชฉ๋ก ํ์ผ์ ์์ ํ๋ฉด ๋ณ๊ฒฝ ๋ด์ฉ์ ์๊ฑฐ๋, ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฐ์์ด ๋ฆ์ด์ง๊ฑฐ๋, ์ฑ์ ์ถฉ๋์ ์ผ๊ธฐํ ์ ์์ต๋๋ค. ํ๊ฒฝ ์ค์ (์ ํธ)๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด์๋, macOS์ ์๋ defaults ์ปค๋งจ๋๋ผ์ธ ์ ํธ๋ฆฌํฐ๋ฅผ ๋์ ์ฌ์ฉํ์ญ์์ค.
๊ต์ก๊ธฐ๊ด์ ๊ด๋ฆฌ ์ฅ๋น์ ๊ฐ์ ์์ธ์ ์ธ ๊ฒฝ์ฐ๋ฅผ ๋นผ๋ฉด, ์ฌ์ฉ์์ ๊ธฐ๋ณธ๊ฐ์ ํ๋์ ์ฅ๋น์ localํ๊ฒ ์ ์ฅ๋๋ฉฐ, ๋ฐฑ์
๊ณผ ๋ณต์์ ์ํด ์ ์ง๋ฉ๋๋ค. ํ๊ฒฝ ์ค์ (์ ํธ)๊ณผ ์ฌ์ฉ์์ ์ฐ๊ฒฐ๋ ๋ค๋ฅธ ์ฅ๋น์์ ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ์ํด์๋, NSUbiquitousKeyValueStore
๋ฅผ ๋์ ์ฌ์ฉํ์ญ์์ค.
๊ธฐ๋ณธ ์ฌ์ฉ
UserDefaults.standard
๋ก ์ฌ์ฉํ๋ค.UserDefaults์ ๋ฐ์ดํฐ ์ ์ฅ
Any? ํ์ ์ ๊ฐ๊ณผ Stringํ์ ์ ํค๋ก ์ ์ฅํ๋ค.
UserDefaults.standard.set("๊ฐ", forKey: "ํค")
UserDefaults์ ์ ์ฅ๋ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
์๋ ๊ฐ ๋ชจ๋ ์ต์ ๋๋ก ๊ฐ์ ธ์จ๋ค.
let ๊ฐ1 = UserDefaults.standard.object(forKey: "ํค1") as ํ์ // Any? ๋ฆฌํด let ๊ฐ2 = UserDefaults.standard.string(forKey: "ํค1") // String? ๋ฆฌํด let ๋ฐฐ์ด = UserDefaults.standard.array(forKey: "ํค") // [Any]? ๋ฆฌํด
string, array ์ธ์ URL, Data, Dictionary ๋ฑ์ ํ์ ์ผ๋ก๋ ๊ฐ์ ธ์ฌ ์ ์๋ค - ๊ณต์๋ฌธ์ ์ฐธ์กฐ (https://developer.apple.com/documentation/foundation/userdefaults/)
UserDefaults์ ๋ฐ์ดํฐ ์ง์ฐ๊ธฐ
removeObject(forKey: String)