[Swift] Property

2021/02/20 - [iOS] - [Swift] Enum 2021/02/19 - [iOS] - [Swift] Struct์™€ Class์˜ ์ฐจ์ด ์•ž์—์„œ struct, class, enum์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. ์ด๋ฒˆ์—๋Š” ์ด๋“ค์˜ ํƒ€์ž…๊ณผ ๊ด€๋ จ์žˆ๋Š” ๊ฐ’์ธ property์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ™‹๐Ÿผ‍โ™€๏ธ What is Property? ํ”„๋กœํผํ‹ฐ๋Š” ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•๊ณผ ๊ด€๋ จํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. ํ”„๋กœํผํ‹ฐ์˜ ์ข…๋ฅ˜์—๋Š” ์ €์žฅ ํ”„๋กœํผํ‹ฐ(Stored Properties)์™€ ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ(Computed Properties)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ ํ”„๋กœํผํ‹ฐ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœํผํ‹ฐ์ด๊ณ , ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ๋Š” ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ณ  ํŠน์ •ํ•˜๊ฒŒ ๊ณ„์‚ฐํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด ์ฃผ๋Š” ํ”„๋กœํผํ‹ฐ์ž…๋‹ˆ๋‹ค. ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ๋Š” ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด,..

Swift 2021. 2. 21. 12:40
[Swift] Enum

๋‚˜๋Š” 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..

Swift 2021. 2. 20. 20:50
[Swift] Struct์™€ Class์˜ ์ฐจ์ด

Class ์™€ Struct์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์ด ์ƒ๊ฒผ๋‹ค. ๋‘ ๊ฐ€์ง€๋ฅผ ๋ฌดํ„ฑ๋Œ€๊ณ  ์‚ฌ์šฉํ–ˆ๊ณ  ๋‹น์—ฐํžˆ ViewController๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” Class, Test Model๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” Struct๋กœ Model๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด์œ ๋Š” ํฌ๊ฒŒ ์—†์—ˆ๊ณ  ๊ทธ๋ƒฅ ๊ทธ๋ ‡๊ฒŒ ๋ฐฐ์› ๊ณ  ๊ทธ๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด ์™”๊ธฐ ๋•Œ๋ฌธ์—. ์–ด๋–ค ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋˜์ง€ Class, Struct๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์—†๋‹ค๊ณ  ๋งํ•˜๋Š”๋ฐ ๊ทธ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด๋Š” ๋ญ”์ง€ ์™œ ๋ง์„ ์•ˆํ•ด์ฃผ๋Š”์ง€.. ๊ทธ๋ž˜์„œ ๊ฒ€์ƒ‰์„ ํ•ด๋ณด์•˜๋‹ค. ๐Ÿ™ ๊ณตํ†ต์  ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌ์กฐํ™”ํ•ด์„œ ๋ฌถ์–ด๋‘” ํ˜•์‹ ํ•˜๋‚˜์˜ ์‚ฌ์šฉ์ž ์ง€์ • ํƒ€์ž…์„ ๋งŒ๋“œ๋Š” ๊ฒƒ ์ด๋‹ˆ์…œ๋ผ์ด์ € init ๋ฅผ ์ •์˜ํ•ด์„œ ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด์„œ Extension ์‚ฌ์šฉ ๊ฐ€๋Šฅ Protocol ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์„œ๋ธŒ ์Šคํฌ๋ฆฝํŠธ ์ •์˜ ๊ฐ€๋Šฅ ํ”„๋กœํผํ‹ฐ๊ฐ’์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด..

Swift 2021. 2. 19. 15:22
๋งํฌ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€