์๋ ํ์ญ๋๊น, ๋ฏผํธ์ ๋๋ค. ๐
loadView์ View๋ ์ธ์ ํ ๋น๋ ๊น์?
์ฝ๋๋ฒ ์ด์ค๋ก ์ง ์ฝ๋์์ ์คํํด ๋ณธ ๋ด์ฉ์
๋๋ค. ์์์ผ๋ก๋, super.loadView()๊ฐ ์คํ๋๊ธฐ ์ ๊น์ง๋ view๊ฐ nil์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๋๋ฌธ์ LLDB๋ก view๋ฅผ loadView() ํจ์ ๋ด๋ถ์์ ์ฐ์ด๋ณด์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์์๊ณผ๋ ๋ค๋ฅธ ์ผ์ด ์์์ต๋๋ค. super.loadView()๊ฐ ๋ถ๋ฆฌ๊ธฐ ์ ์ po view๋ก ์ฐ์ด๋ณด๋, loadView์ loadView๋์ด ์ฐํ๋๋, ๊ฐ์ด ๋จ๋ ๊ฒ์ ๋๋ค! ์ฐธ๊ณ ๋ก ์์ UIViewController์ view๋ (id) 0x0์ผ๋ก ํ ๋น๋์ด ์์ง ์์์ต๋๋ค. ์ค๋ฅ์ธ๊ฐ? ์ view๊ฐ ์ฐํ์ง?
๊ทธ๋์ loadView()๋ฅผ ์ฌ๋ฌ๋ฒ ์ฐ์ด๋ณด๊ณ ํ๋์ฉ ๋ด๋ ค๊ฐ๋ฉด์ po view๋ฅผ ์ฐ์ด๋ณด๋, ๋งค๋ฒ ์๋ก์ด view๊ฐ ์ถ๋ ฅ๋์์ต๋๋ค.
If you access this property when its value is nil, the view controller automatically calls the loadView() method and returns the resulting view.
๊ณต์๋ฌธ์ ๋ด์ฉ์ ๋ณด๋ฉด, view property์ ์ ๊ทผํ ๋ nil์ด๋ผ๋ฉด loadView๋ฅผ ํธ์ถํด View๋ฅผ ์ฑ์์ค๋ค๊ณ ํฉ๋๋ค. ๋๋ฌธ์ ์ฌ์ค์ ์ด๋ฏธ view๊ฐ nil์ด์๊ธฐ์ 31๋ฒ์งธ ์ค์ loadView()๊ฐ ํธ์ถ๋ ๊ฒ์ ๋๋ค. ์ด์ด์ po view๋ก ์ ๊ทผํ ๋๋ view๊ฐ nil๊ฐ์ด๊ธฐ ๋๋ฌธ์ ๋งค๋ฒ loadView๋ฅผ ํธ์ถํ๊ฒ ๋๊ณ , ๊ทธ๋ฌ๋ฉด์ view์ ์๋ก์ด ๊ฐ๋ค์ ํ ๋นํ๊ฒ ๋ฉ๋๋ค. ๋ถ๋ฅผ๋๋ง๋ค ์๋ก์ด view๋ค์ด ๋จ๊ฒ ๋๋ ๊ฒ์ ๋๋ค. nil ๊ฐ์ด๋ผ loadView๋ฅผ ํธ์ถํด์!
view๊ฐ ์์ผ๋ฉด ์ฑ์ด ํฐ์ง๋๊น ๊ทธ๋ฐ ๊ฒ ๊ฐ์๋ฐ, ์ฐธ ์์ ํ ์ธ์ด๋ผ๋ ์๊ฐ์ด ๋ค์ ๋ค์์ต๋๋ค.
'๐ iOS > ๐ถ ๊ถ๊ธ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] ARC_๊ฐ์ฒด ์๋ช , weak์ unowned ์ฐจ์ด (0) | 2024.03.21 |
---|---|
[iOS] Swift์ ์ปดํ์ผ๋ฌ _ LLVM (1) | 2024.03.12 |
[NSCache&URLCache]์ ์ด๋ฏธ์ง ํ์ผ์ด URLCache์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ๋์คํฌ์ ์ ์ฅ๋ ๊น? (0) | 2024.01.28 |
[Swift]super.init()์ด ๋ฐ๋์ ํ์ํ๋ ๊ฒฝ์ฐ (0) | 2023.11.08 |