Programming/Swift
WWDC2021: Meet async/await in Swift
WWDC2021: Meet async/await in Swift
2021.06.10๊ด์ฌ ์๋ ์ธ์
์ ํ๋์ฉ ๋ณด๊ณ ์๋๋ฐ, ๊ทธ์ค ์ฒซ ๋ฒ์งธ๋ก ์์ฒญํ ๊ฒ์ด "Meet async/await in Swift"๋ค. ์ค๋ฐ๋ถ๊น์ง์ ๋ด์ฉ์ ์ ๋ฆฌํ๋ค. completionHandler๋ฅผ ์ฌ์ฉํ์ ๋์ async/await์ ์ฌ์ฉํ์ ๋๋ฅผ ๋น๊ตํ๋ ๋ด์ฉ์ธ๋ฐ ์ด๊ฒ๋ง ๋ด๋ ์ด๋ ์ ๋ ๊ฐ์ด ์กํ๋ค. ๊ธฐ์กด์๋ completionHandler๋ฅผ ์ด์ฉํด ๋น๋๊ธฐ ์์
์ ์ฒ๋ฆฌํ๋ค. ๋น๋๊ธฐ ์์
์ ํ๋ฉด, ์ค๋ ๋๊ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์์
์ ์๋ฃํ ๋๊น์ง ๋ค๋ฅธ ์์
์ ์ํํ ์ ์๋ ์ฅ์ ์ด ์๋ค. ๋ง์ ์ฌ๋๋ค์๊ฒ ์น์ํ ์ ์๋ ์๋ฅผ ์ดํด๋ณด๋ฉด, ํ
์ด๋ธ ๋ทฐ๊ฐ ์๊ณ , ์ฌ๊ธฐ์๋ ์๋ฒ์ ์ ์ฅ๋ ์ธ๋ค์ผ ์ด๋ฏธ์ง๊ฐ ํ์๋๋ค. ์ธ๋ค์ผ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค. ViewModel์์ fetchThumbnail ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค..
Swift: ๊ธ์ ์ ์ธ Guard ์ฌ์ฉ
Swift: ๊ธ์ ์ ์ธ Guard ์ฌ์ฉ
2021.04.25๋ ์ธ ์ค์ํํธ 30ํธ๋ฅผ ์ฝ๋ค๊ฐ, ์๋ฟ๋ ๋ถ๋ถ์ด ์์ด์ ์์ฝ, ์ ๋ฆฌํ๋ค. ์๊ณ ๋ฆฌ์ฆ ํ ๋๋ ๋น์ทํ๊ฒ ๋ง์ด ์ฐ๋๋ฐ (while !queue.isEmpty) ์ด๊ฑธ ์ฝ๊ณ ์ ๊ณ ์ณ์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. Use Positive Guards guard ํค์๋์ ์ฃผ์ ์ฉ๋ ๊ณ์ฐ์ ํ์ํ ์ต์
์ ์ธ๋ฉํ ๊ธฐ๋ฅ์ ๋ํ ์ ์ ์กฐ๊ฑด์ ๋ช
์ ์ฌ๊ธฐ์๋ ๋ ๋ฒ์งธ ์ฉ๋์ ๋ํด ์ค๋ช
ํ๋ค. guard !pieces.isEmpty else { return } ์ ์ฝ๋๋ ๋ ๊ฐ์ง ๋จ์ ์ด ์๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ → !๋ฅผ ์๊ธฐ ์ฝ๋ค. ๋ด์ฌํํ๊ธฐ ์ด๋ ต๋ค. ์กฐ๊ฑด์ ์ฝ์ ๋, ์ฝ๋์ ์๋ฏธ๋ฅผ ์ ๋๋ก ์ดํดํ๊ธฐ ์ํด ์ฝ์ ๋จ์ด์ ์๋ฏธ๋ฅผ ๋ค์ง์ด์ผ ํ๋ค. Collection ํ๋กํ ์ฝ์ ์ฌ์ํ ๋์ฐ๋ฏธ๋ฅผ ์ถ๊ฐํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค. extens..
Swift: Optional๊ณผ Optional ์์ ํ๊ฒ ์ฌ์ฉํ๊ธฐ
Swift: Optional๊ณผ Optional ์์ ํ๊ฒ ์ฌ์ฉํ๊ธฐ
2020.09.08๐ก ์ต์
๋ ์ฒด์ด๋ ๋ฑ ์ผ๋ถ ๋น ์ง ๊ฐ๋
์ ์ข ๋ ๊ณต๋ถํ๊ณ ์ ์ฑ์ธ ์์ ๐ก ์ค์ํํธ์์๋ NULL์ nil๋ก ํ๊ธฐํ๋ค. ์ค์ํํธ๋ฅผ ์ฒ์ ์ ํ๋ฉด์ ๊ฐ์ฅ ๋จผ์ ๋ง๋๋ ์์ํ ๋ฌธ๋ฒ์ Optional ์ด ์๋๊น ์๊ฐํ๋ค. ์ฝํ๋ฆฐ์๋ Nullable์ด๋ผ๋ ๊ฐ๋
์ด ์์ง๋ง ๋ด๊ฐ ์ฃผ๋ก ์ฌ์ฉํ๋ ์๋ฐ๋ ํ์ด์ฌ์๋ ์๋ ๋ฌธ๋ฒ์ด์๋ค. (Java8 ๋ถํฐ ๋์
๋์๋ค.) ์๋ฐ(ํน์ ๋ค๋ฅธ ์ธ์ด)์์ ์ฌ์ฉํ๋ ๊ฒ ์ฒ๋ผ ์ค์ํํธ์์ nil์ ์ฌ์ฉํ๋ฉด Xcode์์๋ ๋ฌด์ํ ๋นจ๊ฐ ์ค์ด ๋ฐ๊ธด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณ ์น๊ธด ํด์ผ ํ๋๊น ์๋ฌธ๋ ๋ชจ๋ฅธ ์ฒด Fix๋ฅผ ๋๋ฌ์ ๊ณ ์น๋ค. ๋ค๋ค ์ด๋ฐ ๊ฒฝํ ํ๋ฒ์ฏค์ ์์ ๊ฑฐ๋ค. ์ํํ ์ง์๊ณผ, ์ข์ ์๋ฃ๋ค์ ์ฝ์ผ๋ฉด์ ์ ๋ฆฌํด๋ดค๋ค. ๋ชจ์ชผ๋ก ๋๊ตฐ๊ฐ์๊ฒ๋ ๋์์ด ๋๊ธธ ๋ฐ๋ผ๋ฉฐ, ์๋ชป๋ ์ง์์ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ์ผ..