[Swift] Struct์™€ Class ๋น„๊ตํ•˜๊ธฐ

Swift & Struct์™€ ๊ด€๋ จ๋œ ๋ฉด์ ‘ ์งˆ๋ฌธ Struct์™€ Class์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ  ์–ธ์ œ ๊ฐ๊ฐ์„ ์“ฐ๋ฉด ์ข‹์„์ง€ ์„ค๋ช…ํ•ด๋ณด์„ธ์š” Struct๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜์‹œ์˜ค struct์™€ class์˜ ๋น„๊ต๋Š” ๋งŽ์€ interview referene์—์„œ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ž˜ ์•Œ์•„์•ผ ํ•œ๋‹ค๋Š” ๊ฐ•๋ฐ•์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๊ผฌ๋ฆฌ์— ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ ์ˆ˜ ์žˆ๋Š” Struct์™€ Class์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Struct & Class Struct Class ์ •์˜ ํƒ€์ž…์ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ํŠน์ • ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ์ผ์ข…์˜ ํ‹€ ํƒ€์ž… ๊ฐ’ ํƒ€์ž… (value type) ์ฐธ์กฐ ํƒ€์ž… (reference type) ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ stack heap ๊ณตํ†ต์  ๋‚ด๋ถ€์— prope..

iOS 2021. 5. 6. 15:25
[Rx] PHPhotoLibrary ์ฒซ ์Šน์ธ ์ดํ›„ ๋ฐ”๋กœ ์•จ๋ฒ” ์•ˆ๋œจ๋Š” ๋ฌธ์ œ

ํ˜ผ์ž ๋งŒ์ง€์ž‘ ๊ฑฐ๋ฆฌ๊ณ  ์žˆ๋Š” ํ† ์ด ํ”„๋กœ์ ํŠธ์—์„œ ํ•ด๊ฒฐ ๋ชปํ•˜๊ณ  ์žˆ๋˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ ๊ทน์ ์œผ๋กœ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์˜ค๋Š˜ Rx ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ๊ทธ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•„์„œ ๊ณต์œ ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋‹จ ๋ฌธ์ œ ์ƒํ™ฉ๋ถ€ํ„ฐ ๋ณด๊ณ  ๊ฐ€์‹ค๊นŒ์—ฌ. ์•„๋‹ˆ์ง€, ์ผ๋‹จ ์ปคํ”ผ ๋ถ€ํ„ฐ. ๋ฌธ์ œ์ƒํ™ฉ ์‚ฌ์šฉ์ž์˜ ์‚ฌ์ง„์ฒฉ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ์ตœ์ดˆ ์ ‘๊ทผ ์‹œ๋„์—์„œ ์ €๋ ‡๊ฒŒ ์Šน์ธ์„ ๋ฐ›์•„์•ผ ํ•˜์ฃ . ๊ทธ๋Ÿฐ๋ฐ ์™ผ์ชฝ์—์„œ ์Šน์ธ์„ ํ•ด์ค˜๋„ ์˜ค๋ฅธ์ชฝ ํ™”๋ฉด ์ฒ˜๋Ÿผ ๋ฐ”๋กœ ์‚ฌ์ง„๋“ค์ด ๋œจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ์‚ฌ์ง„์ฒฉ์„ ๋ˆŒ๋Ÿฌ์•ผ ๋œจ๋”๋ผ๊ตฌ์š”. ์ด ๋ฌธ์ œ๋ฅผ (ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ฐพ์œผ๋‹ˆ๊นŒ ๋‚˜์˜ค๊ธด ํ•˜๋˜๋ฐ ์™œ ์•ˆ์ฐพ์•„๋ดค์—ˆ์ง€ ํ‚คํ‚ค) Rx๋กœ ํ•ด๊ฒฐํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์›์ธ ํ˜„์žฌ๋Š” photos ๋ณ€์ˆ˜์— ์‚ฌ์ง„๋“ค์„ load ํ•˜์ง€๋งŒ '์Šน์ธ' ๊ณผ์ •์„ ๊ฑฐ์น˜๊ณ  reload ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด reload๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉด ๋˜๊ฒ ๋„ค์š”..

iOS 2021. 4. 22. 12:25
[iOS] SceneDelegate & AppDelegate์˜ ์—ญํ• 

* ํ•ด๋‹น ๊ธ€์—๋Š” ๊ฐœ์ธ ๊ฒฌํ•ด๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ์œผ๋ฏ€๋กœ ์ด๊ณณ์„ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์กฐ๊ธˆ ๋” ๊น”๋”ํ•œ ์„ค๋ช…์„ ๋ณด์‹ค์ˆ˜๋„(?) ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ SceneDelegate๊ณผ AppDelegate์˜ ์—ญํ• ์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณต์‹๋ฌธ์„œ์™€ DW ๋ธ”๋กœ๊ทธ ๋ฐ ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•˜๋Š” ๊ธ€์ด๋ผ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฐœ๊ฒฌ ์‹œ ๋Œ“๊ธ€๋กœ ๊ผญ ๋ง์”€ํ•ด์ฃผ์„ธ์š”! ์‹œ์ž‘ํ•ด๋ณผ๊นŒ์š”? ์ œ๊ฐ€ ์•ฝ 5๊ฐœ์›” ์ „์— ์ฒ˜์Œ iOS๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ–ˆ์„ ๋• XCode ๋ฒ„์ „๋„ 11 ์ด์ƒ์ด์—ˆ๊ณ  ๋‹น์‹œ ๋ณดํŽธ์ ์ด์—ˆ๋˜ iOS ๋ฒ„์ „๋„ 13์ด์ƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ ์ œ๊ฐ€ ์ฒ˜์Œ ๋ฐฐ์šธ ๋•Œ๋„ Create New Project๋ฅผ ํ•˜๋ฉด AppDelegate.swift์™€ SceneDelegate์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ AppDelegate์ด App Life-Cycle๋„ ๊ด€๋ฆฌํ•˜๋˜ ํ˜ธ๋žญ์ด ๋‹ด๋ฐฐํ”ผ๋˜ ์‹œ์ ˆ(์ด..

iOS 2021. 1. 16. 19:47
[Swift 5.0] ์Šค์œ„ํ”„ํŠธ์˜ ๊ธฐ๋ณธ

Types Swift๋Š” ์ž๋ฃŒํ˜•์€ ์—ฌํƒ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค ์ฒ˜๋Ÿผ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒํ˜•๊ณผ collection type์„ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ ๋ฐ–์—๋„ Objective-C์—์„œ๋Š” ์ œ๊ณตํ•˜์ง€ ์•Š์ง€๋งŒ python์„ ๋‹ค๋ค„๋ดค๋‹ค๋ฉด ์•„๋Š” tuple๊ณผ Swift์˜ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ธ optional์ด ์žˆ๋‹ค. Swift์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒํ˜•์—๋Š” ์ •์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Int, ์‹ค์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ Double / Float, ๋…ผ๋ฆฌ ์ž๋ฃŒํ˜• Bool๊ณผ text data๋ฅผ ์œ„ํ•œ String์ด ์žˆ๋‹ค. Collection type์—๋Š” Array, Set, Dictionary๊ฐ€ ์žˆ๊ณ  ์ง์ „์— ์–ธ๊ธ‰ํ•œ tuple์€ ํ•จ์ˆ˜์—์„œ ์—ฌ๋Ÿฌ ๊ฐ’์„ returnํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์ž๋ฃŒํ˜•์ธ optional type์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ’์˜ ์œ ๋ฌด๋ฅผ ํ‘œํ˜„ํ•  ..