ARC
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- iOS ์ ๊ฒฝ์ฐ ARC ๋ฅผ ์ฌ์ฉํ์ฌ, ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ํ๋ค.
- ํ์์๋ ์ฃผ๋ก ํฌ๊ธฐ๊ฐ ํฌ๊ณ ์ค๋ซ๋์ ์ ์ฅ๋์ด ๊ด๋ฆฌํ ํ์๊ฐ ์๋ ๋ฐ์ดํฐ๋ค์ด ํ ๋น๋๋๋ฐ, ํ ๋น๋ ๋ฐ์ดํฐ๋ฅผ ํด์ ํ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๋ค.
๋ฉ๋ชจ๋ฆฌ ๋์
- ๊ฐ์ฒด์ ๊ฐ์ฒด๊ฐ ์๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒฝ์ฐ ๊ฐํ ์ฐธ์กฐ ์ธ์ดํด์ด ๋ฐ์์ ํ์ฌ, ํ์ ์ฌ๋ผ๊ฐ ๋ฐ์ดํฐ๋ฅผ ํด์ ์ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๊ธฐ์ง ์๋๋ค.
- ๊ทธ๋์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด weak ์ unowned ์ด๋ค.
- ๊ณตํต์
- ๊ฐ๋ฆฌํค๋ ๋ ํผ๋ฐ์ค ์นด์ดํ ์ ์ฌ๋ฆฌ์ง ์๋๋ค๋ ์
- ์ฐจ์ด์
- weak
- ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด๊ฐ ์ฌ๋ผ์ง๋ฉด nil ์ ์๋์ผ๋ก ํ ๋นํ๋ค.
- nil์ ํ ๋นํ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์, var ๋ก ์ ์ธํด์ผ ํ๋ฉฐ, ๋ฌด์กฐ๊ฑด optional ์ด์ด์ผ ํ๋ค.
- unowned
- ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด๊ฐ ์ฌ๋ผ์ ธ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์์ → ์ฑ์ด ๊บผ์ง ์ํ์ด ์์
- ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด๊ฐ ์ฌ๋ผ์ ธ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์์ → ์ฑ์ด ๊บผ์ง ์ํ์ด ์์
- weak
- ๊ทธ๋์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด weak ์ unowned ์ด๋ค.
๊ฐ์ฒด์ ํด๋ก์ ๊ฐ ์๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒฝ์ฐ
- ๊ฐ์ฒด์ ํด๋ก์ ๊ฐ ์๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒฝ์ฐ ๊ฐํ ์ฐธ์กฐ ์ธ์ดํด์ด ๋ฐ์ํจ → ์บก์ณ ๋ฆฌ์คํธ ์ฌ์ฉํจ
๋น๋๊ธฐ ์ฒ๋ฆฌ์์ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์๋ ๊ฒฝ์ฐ
- ํน์ ์๊ฐ์ด์ ์ค๋ ์์ ํ๋ ๋น๋๊ธฐ ํจ์์ ๊ฒฝ์ฐ, ํด๋ก์ ๊ฐ ViewController๋ฅผ ๊ฐํ์ฐธ์กฐ๋ก ๋ถ๋ค๊ณ ์๊ฒ ๋ง๋ค๊ธฐ๋ ํจ
'iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Struct / Class ๋ ๋ฌด์์ธ๊ฐ? (1) | 2024.04.25 |
---|---|
Design Pattern in Swift [ ์์ฑ ํจํด ] (0) | 2023.04.17 |
[Swift] ์ด๋ฏธ์ง๋ฅผ ์ํ ์ด๋ฏธ์ง๋ก ๋ณ๊ฒฝํ๊ณ ํ ๋๋ฆฌ ์ค์ ํ๋ ๋ฐฉ๋ฒ (0) | 2022.07.05 |
[1day - 6day TIL] 100 days of swift (0) | 2022.04.30 |
[3/18 - 3/22 TIL] Coursera - LearnQuestIntroduction to Programming in Swift 5 (0) | 2022.03.22 |