2021/02/20 - [iOS] - [Swift] Enum 2021/02/19 - [iOS] - [Swift] Struct์ Class์ ์ฐจ์ด ์์์ struct, class, enum์ ๋ํด์ ์์๋ณด์๋ค. ์ด๋ฒ์๋ ์ด๋ค์ ํ์ ๊ณผ ๊ด๋ จ์๋ ๊ฐ์ธ property์ ๋ํด์ ์์๋ณด๋ ค๊ณ ํ๋ค. ๐๐ผโ๏ธ What is Property? ํ๋กํผํฐ๋ ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ๊ณผ ๊ด๋ จํ ๊ฐ์ ๋๋ค. ํ๋กํผํฐ์ ์ข ๋ฅ์๋ ์ ์ฅ ํ๋กํผํฐ(Stored Properties)์ ๊ณ์ฐ๋ ํ๋กํผํฐ(Computed Properties)๊ฐ ์์ต๋๋ค. ์ ์ฅ ํ๋กํผํฐ๋ ๋ง ๊ทธ๋๋ก ๊ฐ์ ์ ์ฅํ๊ณ ์๋ ํ๋กํผํฐ์ด๊ณ , ๊ณ์ฐ๋ ํ๋กํผํฐ๋ ๊ฐ์ ์ ์ฅํ๊ณ ์์ง ์๊ณ ํน์ ํ๊ฒ ๊ณ์ฐํ ๊ฐ์ ๋ฐํํด ์ฃผ๋ ํ๋กํผํฐ์ ๋๋ค. ๊ณ์ฐ๋ ํ๋กํผํฐ๋ ํด๋์ค, ๊ตฌ์กฐ์ฒด,..
๋๋ C#์ผ๋ก ํ์ฐฝ ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ธ ์์ ์ Enum๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ ๊ฐ๋ค. Enum์ case๋ง๋ค ๊ฐ๊ฐ์ ์ ์๊ฐ์ ์ง์ ํ ์ ์๊ณ , ๊ธฐ๋ณธ๊ฐ์ผ๋ก 0, 1, 2 ... ๊ฐ ์ง์ ๋์ด ์์ด์ ์์๊ฐ ์๋ ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ์๋ค. Swift๋ C#๊ณผ ๋์ผํ๊ฒ Enum๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ, ์ฌ์ฉํ๋ ๋ฐฉ์์ด ๊ฝค ๋ฌ๋ผ์ Swift์์์์ Enum์ฌ์ฉ๋ฒ์ ํ ๋ฒ ์์๋ณด๋ ค๊ณ ํ๋ค. ๐๐ผโ๏ธ What is Enum? ์ด๊ฑฐํ์ ๊ด๋ จ๋ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ทธ๋ฃน์ ๊ณตํต์ ํ์ผ๋ก(type) ์ ์ธํด ํ ์์ ์ฑ(type-safety)์ ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ๋๋ฅผ ๋ค๋ฃฐ ์ ์๊ฒ ํด์ค๋๋ค. C๋ Objective-C๊ฐ Integer๊ฐ๋ค๋ก ์ด๊ฑฐํ์ ๊ตฌ์ฑํ ๊ฒ์ ๋ฐํด Swift์์๋ case๊ฐ์ด string, charact..
Class ์ Struct์ ๋ํ ๊ถ๊ธ์ฆ์ด ์๊ฒผ๋ค. ๋ ๊ฐ์ง๋ฅผ ๋ฌดํฑ๋๊ณ ์ฌ์ฉํ๊ณ ๋น์ฐํ ViewController๋ฅผ ๋ง๋ค ๋๋ Class, Test Model๋ฅผ ๋ง๋ค ๋๋ Struct๋ก Model๋ฅผ ๋ง๋ค์๋ค. ์ด์ ๋ ํฌ๊ฒ ์์๊ณ ๊ทธ๋ฅ ๊ทธ๋ ๊ฒ ๋ฐฐ์ ๊ณ ๊ทธ๋ ๊ฒ ๋ง๋ค์ด ์๊ธฐ ๋๋ฌธ์. ์ด๋ค ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๋์ง Class, Struct๋ ํฐ ์ฐจ์ด๊ฐ ์๋ค๊ณ ๋งํ๋๋ฐ ๊ทธ ๋ฏธ๋ฌํ ์ฐจ์ด๋ ๋ญ์ง ์ ๋ง์ ์ํด์ฃผ๋์ง.. ๊ทธ๋์ ๊ฒ์์ ํด๋ณด์๋ค. ๐ ๊ณตํต์ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ๊ตฌ์กฐํํด์ ๋ฌถ์ด๋ ํ์ ํ๋์ ์ฌ์ฉ์ ์ง์ ํ์ ์ ๋ง๋๋ ๊ฒ ์ด๋์ ๋ผ์ด์ init ๋ฅผ ์ ์ํด์ ์ด๊ธฐ ์ํ๋ฅผ ์ง์ ํ ์ ์์ ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ๋ฅผ ์ํด์ Extension ์ฌ์ฉ ๊ฐ๋ฅ Protocol ์ฌ์ฉ ๊ฐ๋ฅ ์๋ธ ์คํฌ๋ฆฝํธ ์ ์ ๊ฐ๋ฅ ํ๋กํผํฐ๊ฐ์ ์ ๊ทผํ๊ณ ์ถ๋ค๋ฉด..