(๋ณธ ๋น๊ต๋ Swift5๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑํ์ต๋๋ค.)
๊ตฌ์กฐ์ฒด์ ํด๋์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ฉ๋์ ๋ง๊ฒ ๋ฌถ์ด์ ํํํ ๋ ์ ์ฉํฉ๋๋ค. ๊ตฌ์กฐ์ฒด์ ํด๋์ค๋ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ์ ๊ธฐ๋ฅ์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ฆ, ๊ตฌ์กฐ์ฒด์ ํด๋์ค ๋ชจ๋ ์๋ก์ด ์ฌ์ฉ์ ์ ์ ๋ฐ์ดํฐ ํ์ ์ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ ๋๋ค.
๋์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์, ๊ตฌ์กฐ์ฒด์ ์ธ์คํด์ค๋ ๊ฐ ํ์ ์ฆ, ๋ณต์ฌํ ๊ฒ์ ์ฃผ๊ณ ๋ฐ๊ณ ํด๋์ค์ ์ธ์คํด์ค๋ ์ฐธ์กฐ(์ฃผ์)ํ์ ์ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ ๋๋ค.
'๋ฌด์์ ์ฃผ๊ณ ๋ฐ๋์ง'๊ฐ, ์ฆ ์ฃผ๊ณ ๋ฐ๋ ๋์์ด ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ธ ๊ฒ์ด์ฃ . ์ฌ๊ธฐ์ ์ฃผ๋ชฉํด์ผํ ์ ์ Swift ์ธ์ด ๋ด์์ ์ฐธ์กฐ ํ์ ์ ํด๋์ค์ ์ธ์คํด์ค๊ฐ ์ ์ผํฉ๋๋ค. ๊ตฌ์กฐ์ฒด๋ฅผ ๋น๋กฏํด์ ๋ค๋ฅธ ํ ์ดํฐ ํ์ ์ ๋ชจ๋ ๊ฐ ํ์ ์ ๋๋ค.
[๊ณตํต์ ] ์ฌ์ฉ ๋ชฉ์ : ์๋ก์ด ๋ฐ์ดํฐ ํ์ ์ ์ ์ํ๊ณ ๊ธฐ๋ฅ์ ์ถ๊ฐ
- ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋กํผํฐ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ฅ ์คํ์ ์ํด ๋ฉ์๋๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
- ์๋ธ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ํตํด ๊ตฌ์กฐ์ฒด ๋๋ ํด๋์ค๊ฐ ๊ฐ๋ ๊ฐ(ํ๋กํผํฐ)์ ์ ๊ทผํ๋๋ก ์๋ธ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
- ์ด๊ธฐํ๋ ๋์ ์ํ๋ฅผ ์ง์ ํ๊ธฐ ์ํด ์ด๋์ ๋ผ์ด์ ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
- ์ด๊ธฐ๊ตฌํ๊ณผ ๋๋ถ์ด ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ๋ฅผ ์ํด ์ต์คํ ์ (Extensioin)์ ํตํด ํ์ฅ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ํน์ ๊ธฐ๋ฅ์ ์คํํ๊ธฐ ์ํด ํน์ ํ๋กํ ์ฝ์ ์ค์ํ ์ ์์ต๋๋ค.
[์ฐจ์ด์ ] ์ฃผ๊ณ ๋ฐ๋ ๋์์ ํ์ : ๊ตฌ์กฐ์ฒด - Value, ํด๋์ค - Reference
- ๊ตฌ์กฐ์ฒด๋ ์์ํ ์ ์์ต๋๋ค.
- ํ์ ์บ์คํ ์ ํด๋์ค์ ์ธ์คํด์ค์๋ง ํ์ฉ๋ฉ๋๋ค.
- ๋์ด๋์ ๋ผ์ด์ ๋ ํด๋์ค์ ์ธ์คํด์ค์๋ง ํ์ฉํ ์ ์์ต๋๋ค.
- ์ฐธ์กฐ ํ์ ๊ณ์ฐ(Reference Counting)์ ํด๋์ค์ ์ธ์คํด์ค์๋ง ์ ์ฉ๋ฉ๋๋ค.
์ฐธ๊ณ ๐
- ์ค์ํํธ ํ๋ก๊ทธ๋๋ฐ(3ํ): ๊ฐ์ฒด์งํฅ, ํจ์ํ, ํ๋กํ ์ฝ ์งํฅ ํจ๋ฌ๋ค์๊น์ง ํ ๋ฒ์!(Swift 5)
'๐ > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Xcode] ํ๋ฉด ๋ค์ง๊ธฐ (0) | 2021.06.21 |
---|---|
[iOS] Height is ambiguous ๊ฒฝ๊ณ (0) | 2021.06.17 |
[iOS] Xcode "No such module" ์ค๋ฅ (0) | 2021.06.16 |
[iOS] iOS์ฑ ํ๋ก์ ํธ ๋น๋ํ๊ธฐ (CocoaPods, Podfile) (0) | 2021.06.10 |
iOS ํ๋ก์ ํธ ๊ณต๋ถ ๋ฐฉํฅ (0) | 2021.06.05 |
๋๊ธ