๐ AutoLayout : Graph_Animated ๊ทธ๋ํ๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ๊ณผ ์ ๋๋ฉ์ด์ ์ค์์ ๋ณด์ด๋ ๋ง๋ํ Graph Layout์ ๋ง๋ค์ด๋ณด๋๊ฒ์ด๋ค. View ์์ View๋ฅผ ์ถ๊ฐํ์ฌ ๋ง๋๋ฅผ ๋ง๋ค๊ณ ๋ง๋ ํ๋๋ฅผ ์ฐํด๋ฆญํ์ฌ ์์View์ 'Equals Height' ์ค์ ํ๊ณ Structure์ ๋ณด์ด๋ฏ์ด ์์ View ~ ๋ง๋ View 6๊ฐ๋ฅผ ๋ชจ๋ ์ ํํ์ฌ 'Equal Height' ์ค์ 6๊ฐ ๋ง๋View๋ง ์ ํํ์ฌ Equal Widths๋ก ๋์ด๋ฅผ ๊ฐ๊ฒ ๋ง๋ค์ด์ค๋ค. ํ๋ํ๋์ ๋ง๋ View์ ๋์ด๋ Equal Height to ์ Multiplier๋ฅผ ์กฐ์ ํด์ค๋ค. ํ์ง๋ง ์ฌ๊ธฐ๊น์ง๋ Multiplier๋ฅผ ์ด์ฉํด์ ๊ตฌํํ ๊ฒ์ด์ง๋ง, ์ฌ์ฉ์ํํ ์ ๋ ฅ์ ๋ฐ๊ฑฐ๋ ๋คํธ์ํฌ๋ฅผ ํตํด์ ์ ๋ ฅ๋ฐ์ ๊ฐ์ผ๋ก ํํํ๊ธฐ์ํด์ ์ด..
๐ AutoLayout : Dynamic Text ๋์ ํ ์คํธ ๊ตฌํ ๋ฐฉ๋ฒ View์ ์์น๋ ์ํ, ์์ง์ผ๋ก ์ค์ ์ ํด์ฃผ์๊ณ View๋ด imageView์ ์์น๋ฅผ ์ก์์ฃผ์ด์ผ ํ๋ค. ๊ฝ์ฐจ๊ฒ ๋ง๋ค๊ธฐ ์ํด, ์ํ์ข์ฐ ์ฌ๋ฐฑ์ 0์ผ๋ก ์ค์ ํ๋ฉด ๋น์จ์ด ๊นจ์ ธ์ ์ด์ํ๊ฒ ๋ณด์ผ ๊ฒ์ด๋ค. ๊ทธ ์ด์ ๋ imageView์ ํฌ๊ธฐ์ ๋ค์ด๊ฐ๋ image๋ฅผ ํฝ์ ๊ฐ ๊ทธ๋๋ก ๊ฐ์ ธ์๊ธฐ๋๋ฌธ์ด๋ค. ์ฆ, ์ ์ฝ์กฐ๊ฑด์ ์ง์ ํด์ฃผ์ง ์์์์ด๋ค. ๋จผ์ imageView์ ContentMode๋ฅผ Asfect Fit์ผ๋ก ์ค์ ํ๋ค. ๊ทธ๋ผ์๋ ์์ง ํฌ๊ธฐ๊ฐ ๋ง์ง ์๋๋ค. image์ ์๋ณธ ํฌ๊ธฐ๋๋ก ์ฌ๋ฆฌ๋ ค๋ฉด -> ์ฌ์ง์ Aspect Ratio๋ฅผ ์ถ๊ฐํ์ฌ ์ฌ์ง์ ์๋ณธ ํฌ๊ธฐ(width, height )๋ฅผ ๋น์จ์ ์ค์ ํด์ค๋ค. ๊ทธ๋ผ imageView์ ํฌ๊ธฐ๊ฐ ํด๊ฒฐ ์๋ฃ ..
ํ๋ก์ ํธ ์งํ๋์ค NavigationController๋ก ์ฐ๊ฒฐ๋ View์์ dismiss์ดํ ์๋์ผ๋ก reloadData()๊ฐ ํธ์ถ๋์ง ์๋๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. dismiss ์ดํ ๋ณด์ด๋ ํ๋ฉด์์ viewWillAppear()๋ฅผ ํด์คฌ์์๋ ๋ง์ด๋ค. ๊ทธ๋์ ๊ตฌ๊ธ๋งํ ๊ฒฐ๊ณผ ์์ธ์ ์ฐพ์ ์ ์์๋ค. Navigation Controller๋ฅผ dismiss ํ ์ดํ์๋ viewWillAppear๋ viewDidAppear๊ฐ ์คํ๋์ง ์๋๋ค. CollectionView๋ TableView๋ฅผ reload ํ๋ ค๋ฉด NotificationCenter๋ก ๊ตฌํํด์ผ ํ๋ค. ์๋์ฝ๋์์ TableViewController์ DetailViewController๊ฐ ๋์ค๋๋ฐ, DetailViewController๊ฐ ๋ชจ๋ฌ๋ก ๋์ธ..
๋ชจ๋๋ ๋ชจ๋๋๋ ํน์ ๊ธฐ๋ฅ์ด ์๋ ๋์์ธ ํจํด ํน์ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ํ ์ ์๋ค. ํ์ ์ ์ธ์๋ก ๋ฐ๋ ํ์ ( ํน์ ํ์ ์ ๊ฐ์ ํฌ์ฅ ) ํน์ ํ์ ์ ๊ฐ์ ํฌ์ฅํ ๊ฒ์ ๋ฐํํ๋ ํจ์(๋ฉ์๋)๊ฐ ์กด์ฌ ํฌ์ฅ๋ ๊ฐ์ ๋ณํํ์ฌ ๊ฐ์ ํํ๋ก ํฌ์ฅํ๋ ํจ์(๋ฉ์๋)๊ฐ ์กด์ฌ ์ปจํ ์คํธ ์ปจํ ์คํธcontext๋ ์ปจํ ์ธ ๋ฅผ ๋ด์ ์์ ๊ฐ์ ๊ฒ ํจ์์ ์ ๋ฌ์ธ์๋ก ์ปจํ ์คํธ๊ฐ ๋ค๋ฅธ ๊ฐ์ ์ ๋ฌํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. func addThree(_ num: Int) -> Int { return num + 3 } //๋งค๊ฐ๋ณ์๋ก ์ผ๋ฐ Int ํ์ ์ ๊ฐ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ์ ์์ ์ผ๋ก ์คํ addThree(2) //์ ๋ฌ์ธ์๊ฐ ์์ํ ๊ฐ์ด ์๋ ์ต์ ๋์ด๋ผ๋ ์ปจํ ์คํธ๋ก ๋๋ฌ์ธ์ฌ ์ ๋ฌ๋์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ ๋ฐ์ addThree(..
๋งต, ํํฐ, ๋ฆฌ๋์ค ์ค์ํํธ๋ ํจ์๋ฅผ ์ผ๊ธ ๊ฐ์ฒด๋ก ์ทจ๊ธํ๋ค. ๋ฐ๋ผ์ ํจ์๋ฅผ ๋ค๋ฅธ ํจ์์ ์ ๋ฌ์ธ์๋ก ์ฌ์ฉํ ์ ์๋ค. ๋งค๊ฐ๋ณ์๋ก ํจ์๋ฅผ ๊ฐ๋ ํจ์๋ฅผ ๊ณ ์ฐจํจ์๋ผ๊ณ ๋ถ๋ฅด๋๋ฐ, ๋ํ์ ์ธ ๊ณ ์ฐจํจ์๋ก ๋งต, ํํฐ, ๋ฆฌ๋์ค๊ฐ ์๋ค. ๋งต ์์ ์ ํธ์ถํ ๋ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ ํจ์๋ฅผ ์คํํ์ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ฐํํด์ฃผ๋ ํจ์ ์ค์ํํธ์์ ๋งต์ ๋ฐฐ์ด, ๋์ ๋๋ฆฌ, ์ธํธ, ์ต์ ๋ ๋ฑ์์ ์ฌ์ฉํ ์ ์๋ค. ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋๋ฐ ๋ง์ด ์ฌ์ฉํ๋ค. for-in ๊ตฌ๋ฌธ๊ณผ ๋งต ๋ฉ์๋์ ์ฌ์ฉ ๋น๊ต let numbers: [Int] = [0,1,2,3,4] var doubledNumbers: [Int] = [Int]() var strings: [String] = [String]() // for ๊ตฌ๋ฌธ ์ฌ์ฉ for number in numbers..
๐ Dispatch Queue Queue : FIFO ๊ตฌ์กฐ Serial Queue ์ด์ ์์ ์ด ๋๋๋ฉด ๋ค์ ์์ ์ ์์ฐจ์ ์ผ๋ก ์คํํ๋ ์ง๋ ฌ ํํ Concurrent Queue ์ด์ ์์ ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด ์๋, ๋์์ ์คํ๋๋ ๋ณ๋ ฌ ํํ ๐ GCD GCD : Multi Process๋ฅผ ์ํ Thread Programming์ ๋ฐฉ๋ฒ ๊ธฐ์กด์ Thread Programming์ ํ๊ธฐ ์ํด์๋ ๋๊ธฐํ๋ ๊ด๋ฆฌ๋ฅผ ํด์ค์ผํ๊ณ , deadlock๋ ๊ด๋ฆฌ๋ฅผ ํ๋ ๋ฑ ์ค๋ ๋ํ์ ์ง์ ๊ด๋ฆฌํด์ผํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์ง๋ง, ์ ํ์์ ๋ฐ๋ก GCD๋ฅผ ํตํด์ ์ฐ๋ ๋๋ฅผ OS์์ ๊ด๋ฆฌํ๊ณ ๋ถ๋ฐฐํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ Swift์์๋ Thread ๊ด๋ จ ์์ ์ Grand Central Dispatch API ( GCD )๋ฅผ ํตํด ์ฒ๋ฆฌํ๋ค...
์ต์ ๋ ์ฒด์ด๋ ์ต์ ๋์ ์ํด ์๋ nil ์ผ์ง๋ ๋ชจ๋ฅด๋ ํ๋กํผํฐ, ๋ฉ์๋, ์๋ธ์คํฌ๋ฆฝ์ ๋ฑ์ ๊ฐ์ ธ์ค๊ฑฐ๋ ํธ์ถํ ๋ ์ฌ์ฉํ ์ ์๋ ์ผ๋ จ์ ๊ณผ์ . ์ฆ, ์ต์ ๋์ ๋ฐ๋ณต์ฌ์ฉํ์ฌ ์ต์ ๋์ด ์์ ๊ฑฐ ์ฒด์ธ์ฒ๋ผ ์๋ก ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ๊ณ ์๋ ๋ชจ์์ด๊ธฐ ๋๋ฌธ์ ์ต์ ๋ ์ฒด์ด๋์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์์ ๊ฑฐ ์ฒด์ธ์์ ํ ์นธ์ด๋ผ๋ ์๊ฑฐ๋ ๊ณ ์ฅ ๋๋ฉด ์ฒด์ธ ์ ์ฒด๊ฐ ๋์ํ์ง ์๋ฏ์ด ์ค์ฒฉ๋ ์ต์ ๋ ์ค ํ๋๋ผ๋ ๊ฐ์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด ๊ฒฐ๊ณผ์ ์ผ๋ก nil ๋ฐํ ์ต์ ๋ ์ฒด์ด๋์ ํ๋กํผํฐ๋ ๋ฉ์๋ ๋๋ ์๋ธ์คํฌ๋ฆฝํธ๋ฅผ ํธ์ถํ๊ณ ์ถ์ ์ต์ ๋ ๋ณ์๋ ์์ ๋ค์ ๋ฌผ์ํ(?)๋ฅผ ๋ถ์ฌ ํํํ๋ค. ์ต์ ๋์ด nil์ด ์๋๋ผ๋ฉด ์ ์์ ์ผ๋ก ํธ์ถ๋ ๊ฒ์ด๊ณ , nil์ด๋ผ๋ฉด ๊ฒฐ๊ด๊ฐ์ผ๋ก nil์ ๋ฐํํ ๊ฒ์ด๋ค. ! ( ๋๋ํ ) ๋ฌผ์ํ ๋์ ์ ๋๋ํ๋ฅผ ์ฌ์ฉํ ์๋์๋๋ฐ, ์ด๋ ์ต์ ๋์..
ํด๋ก์ ํด๋ก์ ๋ ์ฌ์ฉ์์ ์ฝ๋ ์์์ ์ ๋ฌ๋์ด ์ฌ์ฉํ ์ ์๋ ๋ก์ง์ ๊ฐ์ง ์ค๊ดํธ{} ๊ตฌ๋ถ๋ ์ฝ๋์ ๋ธ๋ญ์ด๋ค. ์ฝ๊ฒ ๋งํ๋ฉด '์ด๋ฆ์ด ์๋ ํจ์'์ด๋ค. ๋ฐ๋ผ์ ํจ์๋ ์ด๋ฆ์ด ์๋ ํด๋ก์ ๋ผ๊ณ ํ ์ ์๋ค. ํด๋ก์ ๋ ๋ณ์๋ ์์๊ฐ ์ ์ธ๋ ์์น์์ ์ฐธ์กฐ๋ฅผ ํ๋ํ๊ณ ์ ์ฅํ ์ ์๋ค. ๐ก ํด๋ก์ ์ 3๊ฐ์ง ํํ ์ด๋ฆ์ด ์์ผ๋ฉด์ ์ด๋ค ๊ฐ๋ ํ๋ํ์ง ์์ ์ ์ญํจ์์ ํํ ์ด๋ฆ์ด ์์ผ๋ฉด์ ๋ค๋ฅธ ํจ์ ๋ด๋ถ์ ๊ฐ์ ํ๋ํ ์ ์๋ ์ค์ฒฉ๋ ํจ์์ ํํ ์ด๋ฆ์ด ์๊ณ ์ฃผ๋ณ ๋ฌธ๋งฅ์ ๋ฐ๋ผ ๊ฐ์ ํ๋ํ ์ ์๋ ์ถ์ฝ ๋ฌธ๋ฒ์ผ๋ก ์์ฑํ ํํ ๐ก ํด๋ก์ ์ ๋ค์ํ ํํ ํด๋ก์ ๋ ๋งค๊ฐ๋ณ์์ ๋ฐํ ๊ฐ์ ํ์ ์ ๋ฌธ๋งฅ์ ํตํด ์ ์ถํ ์ ์๊ธฐ ๋๋ฌธ์ ๋งค๊ฐ๋ณ์์ ๋ฐํ ๊ฐ์ ํ์ ์ ์๋ตํ ์ ์๋ค. ํด๋ก์ ์ ๋จ ํ์ค์ ํํ๋ง ๋ค์ด์๋ค๋ฉด ์์์ ์ผ๋ก ์ด๋ฅผ ๋ฐ..