๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Swift08 - ๊ฐ’ ํƒ€์ž… vs ์ฐธ์กฐํƒ€์ž… ๊ฐ’ ํƒ€์ž…(Value Type) ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ ํ•  ๋•Œ ๊ฐ’์„ ๋ณต์‚ฌํ•˜์—ฌ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด ์—ด๊ฑฐํ˜• ๊ฐ’ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์—ฐ๊ด€๋œ ๋ช‡๋ช‡์˜ ๊ฐ’๋“ค์„ ๋ชจ์•„์„œ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๊ฐ์ฒด ๋˜๋Š” ํ•จ์ˆ˜ ๋“ฑ์œผ๋กœ ์ „๋‹ฌ๋  ๋•Œ ์ฐธ์กฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ณต์‚ฌ(๊ฐ’ ๋ณต์‚ฌ) ํ•  ๊ฒฝ์šฐ ์ž์‹ ์„ ์ƒ์†ํ•  ํ•„์š”๊ฐ€ ์—†๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ํƒ€์ž…์„ ์ƒ์† ๋ฐ›์„ ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์Šค์œ„ํ”„ํŠธ์˜ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๋ชจ๋‘ ๊ตฌ์กฐ์ฒด๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์Šค์œ„์ŠคํŠธ๋Š” ๊ตฌ์กฐ์ฒด์™€ ์—ด๊ฑฐํ˜• ์‚ฌ์šฉ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. struct ValueType { var property = 1 } // ์ฒซ ๋ฒˆ์งธ ๊ตฌ์กฐ์ฒด ์ธ์Šคํ„ด์Šค let firstStructInstance = ValueType() // ๋‘ ๋ฒˆ์งธ ๊ตฌ์กฐ์ฒด ์ธ์Šคํ„ด์Šค์— ์ฒซ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค ๊ฐ’ ๋ณต์‚ฌ var secondStructInsta.. 2021. 2. 1.
Switf07 - ๊ตฌ์กฐ์ฒด vs ํด๋ž˜์Šค vs ์—ด๊ฑฐํ˜• ํด๋ž˜์Šค - ๋‹จ์ผ์ƒ์† - ํ”„๋กœํผํ‹ฐ, ๋ฉ”์„œ๋“œ ๊ฐ–๋Š”๋‹ค - ์ฐธ์กฐํƒ€์ž… - appleํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋Œ€๋ถ€๋ถ„์˜ ํฐ ๋ผˆ๋Œ€๋Š” ๋ชจ๋‘ ํด๋ž˜์Šค๋กœ ๊ตฌ์„ฑ ๊ตฌ์กฐ์ฒด - ๋‹ค๋ฅธ ์–ธ์–ด์˜ ๊ตฌ์กฐ์ฒด๋ณด๋‹ค ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–๋Š”๋‹ค - ์ƒ์† ๋ถˆ๊ฐ€ - ํ”„๋กœํผํ‹ฐ, ๋ฉ”์„œ๋“œ ๊ฐ–๋Š”๋‹ค - ๊ฐ‘ ํƒ€์ž… - swift์˜ ๋Œ€๋ถ€๋ถ„์˜ ํฐ ๋ผˆ๋Œ€๋Š” ๊ตฌ์กฐ์ฒด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค ์—ด๊ฑฐํ˜• - ์ƒ์†๋ถˆ๊ฐ€ - ์—ด๊ฑฐํ˜• ์ž์ฒด๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ’ ํƒ€์ž… - ์—ด๊ฑฐํ˜• case ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ ์œ ์˜๋ฏธํ•œ ๊ฐ’ - ๊ฐ’ํƒ€์ž… 2021. 2. 1.
Swift-06 ์—ด๊ฑฐํ˜• Enumerations An enumeration defines a common type for a group of related values and enables you to work with those values in a type-safe way within your code. ์—ด๊ฑฐํ˜•์ด๋ž€? - ์œ ์‚ฌํ•œ ์ข…๋ฅ˜์˜ ์—ฌ๋Ÿฌ ๊ฐ’์„ ํ•œ ๊ณณ์— ๋ชจ์•„์„œ ์ •์˜ํ•œ ๊ฒƒ. - enum ์ž์ฒด๊ฐ€ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž… - ๋Œ€๋ฌธ์ž ์นด๋ฉœ์ผ€์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฆ„์„ ์ •์˜. - ๊ฐ case๋Š” ๊ทธ ์ž์ฒด๊ฐ€ ๊ณ ์œ ์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค.(๊ฐ case์— ์ž๋™์œผ๋กœ ์ •์ˆ˜๊ฐ’์ด ํ• ๋‹น๋˜์ง€ ์•Š์Œ) - ๊ฐ case๋Š” ์†Œ๋ฌธ์ž ์นด๋ฉœ์ผ€์ด์Šค๋กœ ์ •์˜ - ๊ฐ case๋Š” ํ•œ ์ค„์— ๊ฐœ๋ณ„๋กœ๋„, ํ•œ ์ค„์— ์—ฌ๋Ÿฌ๊ฐœ๋„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. enum Weekday { case mon case tue.. 2021. 2. 1.
Swift-05 ๊ตฌ์กฐ์ฒด, ํด๋ž˜์Šค ๊ตฌ์กฐ์ฒด๋ž€ - ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ •์˜ - ๊ตฌ์กฐ์ฒด ๋‚ด๋ถ€์— ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœํผํ‹ฐ๋ฅผ ์ •์˜ - ๊ตฌ์กฐ์ฒด ๋‚ด๋ถ€์—์„œ ๊ธฐ๋Šฅ ์‹คํ–‰์„ ์œ„ํ•ด ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ - ๊ฐ’ ํƒ€์ž… : ๊ตฌ์กฐ์ฒด๋กœ ์ •์˜ํ•œ ํƒ€์ž…์˜ ๊ฐ’์ด ์ „๋‹ฌ๋ ๋•Œ๋Š” ํ•ด๋‹น ๊ฐ’์ด ๋ณต์‚ฌ๋˜์–ด ์ „๋‹ฌ๋œ๋‹ค - ์ด๋‹ˆ์…œ๋ผ์ด์ € ์ •์˜ ๊ฐ€๋Šฅ - ์ƒ์† ๋ถˆ๊ฐ€๋Šฅ, ํƒ€์ž…์บ์ŠคํŒ… ๋ถˆ๊ฐ€๋Šฅ, ๋””์ด๋‹ˆ์…œ๋ผ์ด์ € ๋ถˆ๊ฐ€๋Šฅ ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ - ์—ฐ๊ด€๋œ ๊ฐ„๋‹จํ•œ ๊ฐ’์˜ ์ง‘ํ•ฉ์„ ์บก์Аํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ผ ๋•Œ - ์บก์Аํ™”ํ•œ ๊ฐ’์„ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋‹นํ•  ๋•Œ - ๊ตฌ์กฐ์ฒด์— ์ €์žฅ๋œ ํ”„๋กœํผํ‹ฐ๊ฐ€ ๊ฐ’ ํƒ€์ž…์ด๊ณ  ์ฐธ์กฐ๋ณด๋‹ค ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋‹นํ•  ๋•Œ - ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›๊ฑฐ๋‚˜ ์ž์‹ ์„ ์ƒ์†ํ•  ํ•„์š”๊ฐ€ ์—†์„ ๋•Œ ๊ตฌ์กฐ์ฒด ๋ฌธ๋ฒ• ๊ตฌ์กฐ์ฒด ํ”„๋กœํผํ‹ฐ ๋ฐ ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ struct Sample { // ๊ฐ€๋ณ€ ํ”„๋กœํผํ‹ฐ(๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ) var m.. 2021. 1. 31.
viewController life cycle โ€‹ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰ํ•˜๋ฉด์„œ ViewController๋“ค์ด ๋งŒ๋“ค์–ด์ง€๊ณ  ์‚ฌ๋ผ์ง€๋ฉฐ ํ™”๋ฉด์„ ๋„์šฐ๊ณ  ๋‚ด๋ฆฌ๋Š” ์ž‘์—…์„ ํ•˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๊ณผ์ •๋“ค์€ event์— ์˜ํ•ด ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. โ€‹ โ€‹ Init() storyboard๋ฅผ ํ†ตํ•ด View Controller๋“ค์„ ๋งŒ๋“ค ๊ฒฝ์šฐ ViewController ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ดˆ๊ธฐํ™” ์ž‘์—…์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ init() ์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด๋ฅผ Byte Stream์œผ๋กœ ๋ฐ”๊พธ์–ด ๋””์Šคํฌ์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†กํ•˜๋Š” ์ง๋ ฌํ™” ์ž‘์—…์„ ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜์–ด์˜ค๋Š” NSCoder ๋Š” ๋ฌด์‹œํ•˜์…”๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ View ๋‚ด์˜ ์š”์†Œ๋ฅผ ์ ‘๊ทผํ•œ๋‹ค๋ฉด ์ด๋Š” ์•„์ง ์ƒ์„ฑ๋˜๊ธฐ ์ „ ์ƒํƒœ์ด๊ธฐ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. โ€‹ ์ด์™ธ์—๋„ init(nibName: bundle:) ์ด ์กด์žฌํ•ฉ๋‹ˆ.. 2021. 1. 27.
Swfit-04 Optional Optional - ๊ฐ’์ด ์žˆ์„ ์ˆ˜๋„, ์—†์„ ์ˆ˜๋„ ์žˆ์Œ - nil ํ• ๋‹น ๊ฐ€๋Šฅ - ๊ธฐ๋ณธ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋ถˆ๊ฐ€ : ์˜ต์…”๋„๊ณผ ์ผ๋ฐ˜ ๊ฐ’์€ ๋‹ค๋ฅธ ํƒ€์ž…์ด๋ฏ€๋กœ ์—ฐ์‚ฐ๋ถˆ๊ฐ€ - Optional ์ข…๋ฅ˜ : ? (Optional), ! (Implicitly Unwrapped Optional) Optional์ด ํ•„์š”ํ•œ ์ด์œ  - nil์˜ ๊ฐ€๋Šฅ์„ฑ์„ ์ฝ”๋“œ์ƒ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„ - ์˜ต์…”๋„์ด ์•„๋‹Œ ์ƒ์ˆ˜์—๋Š” nil ํ• ๋‹น ๋ถˆ๊ฐ€๋Šฅ -> ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์ด ์˜ต์…”๋„์ด ์•„๋‹ˆ๋ผ๋ฉด nil์ฒดํฌ๋ฅผ ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์•ˆ์‹ฌํ•˜๊ณ  ์‚ฌ์šฉ -> ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ์•ˆ์ „ํ•œ ์ฝ”๋”ฉ // someOptionalParm์— nil์ด ํ• ๋‹น ๋  ์ˆ˜ ์žˆ๋‹ค. func someFunction(someOptionalParam: Int?) { // .... } // someParm์— nil์ด ํ• ๋‹น .. 2021. 1. 26.