2022. 7. 5. 14:34ใios
swift - ์ฑ๊ธํค ํจํด
์๋ ํ์ธ์ ์ค๋์ swift ์ฑ๊ธํค ํจํด์ ๋ํด์ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค.
์ฑ๊ธํค ํจํด์ ๋ฌด์์ด๋ฉฐ ์ ๊ฐ๋ ์ด ๋ํ๋ฌ์๊น์?
์ฑ๊ธํค ํจํด
"์ฑ ๋ด์์ ์ ์ผํ๊ฒ ์กด์ฌํ๋ ์ธ์คํด์ค"
์ฑ์ ์๋ํ๋ค๋ณด๋ฉด ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ๊ณตํต์ ์ด ์๋ ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ ๋ฌถ์๋ค์ ๋ฝ์๋ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด์ฒ๋ผ ํ ์์์ ์ธ์คํด์ค๋ฅผ ์์ฑ์ํค๋ ๊ฒ์ด ์๋๋ผ ์ค์ง ํ๋์ ์ธ์คํด์ค๋ก "๊ณต์ "ํด์ ์ฌ์ฉํด์ผํ๋ ๊ฒฝ์ฐ๋ผ๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น์?
์ด๋ฅผ ์ํด ๋์จ ๊ฐ๋ ์ด ์ฑ๊ธํค ํจํด์ ๋๋ค.
์ฑ๊ธํค ์ฝ๋
1. static let์ผ๋ก shared๋ฅผ ์ ์ธํจ์ผ๋ก์จ shared๋ "์ ์ญ"์ผ๋ก ๋ง๋ค๊ณ ๋ณ๊ฒฝํ ์ ์๋ ์ํ๋ก ๋ง๋ค์ด์ฃผ์ด ์ ์ผํ ๊ฐ์ ๊ฐ์ง๋๋ก ํฉ๋๋ค.
2. ํด๋์ค ๋ด๋ถ์์ ์ธ์คํด์ค๋ฅผ ์์ฑํจ์ผ๋ก์จ shared์๋ ์์ฑ๋ ํด๋์ค์ ์ฃผ์๋ฅผ ๊ฐ๊ฒ ํฉ๋๋ค.
3. private init์ ํตํด ์ธ๋ถ์์๋ ์์ฑ์๋ฅผ ๋ง๋ค์ง ๋ชปํ๊ฒ ํฉ๋๋ค.
์ด๋ก์จ ํด๋์ค SingleTon์ sharedํ๋กํผํฐ๋ง์ผ๋ก ์ ๊ทผ๊ฐ๋ฅํ ์ ์ผํ ๊ณต์ ๊ฐ์ฒด๊ฐ ๋์์ต๋๋ค.
์์ ํด๋์ค๋ฅผ ์ด์ฉํด์ ์ฌ์ฉํด๋ณด๊ฒ ์ต๋๋ค.
printํจ์์์ obj2๊ฐ ์๋ obj์ aํ๋กํผํฐ์ ์ ๊ทผํ๋๋ฐ 789๊ฐ ์ถ๋ ฅ๋์์ต๋๋ค.
์ฆ "shared๋ณ์๋ฅผ ํตํด ํญ์ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ค."๋ผ๋ ๊ฒ์ ๋๋ค.
ios์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ถ๋ถ์์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
'ios' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
iOS - Realm (0) | 2022.09.19 |
---|---|
Swift - ํด๋์ค ์์๊ณผ ์ฌ์ ์ (1) | 2022.07.06 |
Swift - ์ด๊ฑฐํ(enum), ์์๊ฐ, ์ฐ๊ด๊ฐ (0) | 2022.06.30 |
Swift- inout (0) | 2022.06.28 |
Swift - ํจ์ (0) | 2022.06.27 |