๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

๐ŸŽ iOS/iOS49

[iOS ๋ฉด์ ‘์งˆ๋ฌธ] Delegate๋Š” retain์ด ๋ ๊นŒ? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ์ฃผ์ œ๋Š” Delegate๋Š” retain์ด ๋ ๊นŒ? ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ์ œ๋Š” ๋จผ์ € ์ง€๋‚œ ์‹œ๊ฐ„์— ๋‹ค๋ค˜์—ˆ๋˜ Delegate์™€ Protocol ๊ทธ๋ฆฌ๊ณ  Retain Cycle์ด๋ž€? ์„ ๋ณด๊ณ  ์˜ค์‹œ๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™์•„์š”! ๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์š”~ Class-Ony-Protocol ๋จผ์ € Retain์€ ์ €๋ฒˆ ์‹œ๊ฐ„์— ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋ƒˆ์„๋•Œ ์ฆ‰ ์ธ์Šคํ„ดํ™”๋ฅผ ์‹œ์ผœ์ค„๋•Œ ์ƒ๊ธด๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Delegate๋Š” Protocol์„ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์ด๊ณ  Protocol์€ Class๊ฐ€ ์•„๋‹ˆ๋‹ˆ๊น Retain์ด ๋˜์ง€ ์•Š๋Š”๊ฑฐ๊ฒ ์ง€ ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํด๋ž˜์Šค์—์„œ ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•  ๋•Œ๋Š” Class - Only - Protocol ์ด๋ผ๋Š” ํด๋ž˜์Šค ์ „์šฉ ํ”„๋กœํ† .. 2020. 12. 23.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ] GCD๋ž€? - ๊ฐœ๋… ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ์ฃผ์ œ๋Š” GCD(Grand Central Dispatch)์ž…๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Multi Threading ๋จผ์ € GCD ๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„  ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋”ฉ ์ด๋ผ๋Š” ๊ฐœ๋…์„ ์•Œ๊ณ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด GCD ๊ฐ€ ์• ํ”Œ์—์„œ ์ œ๊ณตํ•˜๋Š” API์ธ๋ฐ ์ด๊ฒƒ์€ ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋”ฉ ์ฒ˜๋ฆฌ๋ฅผ ์‰ฝ๊ณ  ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์ธ๋ฐ์š”. ์™œ ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ๊ฐ€ ํ•„์š”ํ• ๊นŒ์š”? ๋ณดํ†ต์˜ ์ž‘์—…๋“ค์€ ๋Œ€ํ‘œ์ ์œผ๋กœ UI๊ด€๋ จ ์ž‘์—…๋“ค์€ ๋ฉ”์ธ์“ฐ๋ ˆ๋“œ์—์„œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์ž‘์—…๋“ค์€ ๋Œ€๋ถ€๋ถ„ ์ˆœ์ฐจ์ (sync)์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์ฃ . ํ•˜์ง€๋งŒ ์ˆœ์„œ์—†์ด ๋™์‹œ(async)์— ์ด๋ค„์ ธ์•ผ ํ•  ๊ฒƒ๋“ค์ด ์žˆ์ฃ ? ์˜ˆ๋ฅผ ๋“ค๋ฉด ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ๊ฐ™์€ ๊ฒฝ์šฐ ๋™์‹œ์— ๋‹ค์šด๋กœ๋”ฉ์„ ์‹œ์ž‘ํ•ด์„œ ๋จผ์ € ๋๋‚œ ์ด๋ฏธ์ง€๋Š” .. 2020. 12. 18.
[iOS/UI] UITableView๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๊ฒƒ์€ ํ…Œ์ด๋ธ”๋ทฐ์ž…๋‹ˆ๋‹ค. iOS ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ๊ฑฐ์˜ ํ•„์ˆ˜๋กœ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ํด๋ž˜์Šค์ด์ฃ . ๊ทธ๋™์•ˆ ์ œ๊ณต๋˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋Œ€์ถฉ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์˜ค๋Š˜์€ ์ง„์งœ ํ•˜๋‚˜ํ•˜๋‚˜ ์„ธ์„ธํ•˜๊ฒŒ ๋ณด๋ฉด์„œ ์•Œ์•„๊ฐ€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. UITableView ๊ณต์‹ ๋ฌธ์„œ์—๋Š” "๋‹จ์ผ ์—ด์— ๋ฐฐ์—ด๋œ ํ–‰์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ทฐ" ๋ผ๊ณ  ๋˜์–ด์žˆ๋„ค์š”. ๋˜ํ•œ UIScrollView ์— ์ƒ์†๋ฐ›๊ณ  ์žˆ์œผ๋ฏ€๋กœ Scroll์ด ๋‹น์—ฐํžˆ ๊ฐ€๋Šฅํ•˜๊ณ  Scroll ๊ด€๋ จ๋œ ๋ฉ”์†Œ๋“œ๋“ค๋„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Data Source ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์†Œ์Šค ๋ฉ”์†Œ๋“œ๋Š” numberOfSections ์™€ numberOfRowsInSection ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. numberOfSections ์€ ์„น์…˜์˜ ๊ฐœ์ˆ˜๋ฅผ numberOfRowsInSection.. 2020. 12. 16.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ] ์ œ๋„ค๋ฆญ์ด๋ž€? (Swift Generic) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ์ฃผ์ œ๋Š” ์ œ๋„ˆ๋ฆญ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ๋„ˆ๋ฆญ์„ ๋“ค์–ด๋ณด๊ธฐ๋งŒํ•˜๊ณ  ์ œ๋Œ€๋กœ ์•Œ์•„๋ณด๋Š”๊ฑด ์ด๋ฒˆ์ด ์ฒ˜์Œ์ธ๋ฐ ์ •๋ง ์œ ์šฉํ•œ ๋…€์„์ด๋ผ์„œ ๊ณต์œ ๋“œ๋ฆด๋ ค๊ณ  ํ•ด์š”! ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Generic ๊ณต์‹ ๋ฌธ์„œ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค๋ช…ํ•˜๋„ค์š”. ์‹ค์ œ๋กœ Swift์— ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ผ๋Š” ํƒ€์ž…์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„ ์„ค๋ช…๋งŒ์œผ๋กœ๋Š” ์ดํ•ด๊ฐ€ ํž˜๋“œ์‹ค๊ฑฐ์—์š”. ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ด…์‹œ๋‹ค! ๋งŒ์•ฝ old์™€ new๋ผ๋Š” ๊ธ€์ž๋ฅผ ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์„œ๋กœ ๋ฐ”๊พธ๊ณ ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”? ๋ฐ”๋กœ ์•„๋ž˜์ฒ˜๋Ÿผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊ฑฐ์—์š”. ๋งŒ์•ฝ old์™€ new๊ฐ€ ์ˆซ์ž๋ผ๋ฉด ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ• ๊นŒ์š”? ๋ฐ”๋กœ ์•„๋ž˜์ฒ˜๋Ÿผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊ฑฐ์—์š”. ๋งŒ์•ฝ์— ๋ฉ”์†Œ๋“œ์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ํƒ€์ž…์„ ์•Œ์•„์„œ ์•Œ๊ณ  ๋ฐ”๊ฟ”์ฃผ๋ฉด ์–ผ๋งˆ๋‚˜ ํŽธํ• ๊นŒ์š”? ๋งˆ์น˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ˆซ.. 2020. 12. 15.
[iOS] ํด๋ž˜์Šค์ด๋ฆ„ ํ•œ๋ฒˆ์— ๋ชจ๋‘ ๋ฐ”๊พธ๊ธฐ (Refactor Class name) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜๋„ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ๊ฒŒ ์žˆ์–ด์„œ ๊ณต์œ ๋“œ๋ฆด๋ ค๊ณ  ๊ธ€์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ํ‰์†Œ์— ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋‚˜ ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ€๋•Œ ์ง์ ‘ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ณ  ํ•ด๋‹น ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ณ  ๋˜ ์Šคํ† ๋ฆฌ๋ณด๋“œ์—๊ฐ€์„œ ํ•ด๋‹น ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์Šคํ† ๋ฆฌ๋ณด๋“œ,ํŒŒ์ผ,๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์ด๋ฆ„์„ ํ•œ๋ฒˆ์— ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ด์—ˆ๋Š”๋ฐ์š” ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!! ๋ฐ”๋กœ ์•„๋ž˜ ViewController์ด๋ฆ„์ด ์›๋ž˜ OnboardingViewController์ธ๋ฐ์š”. ์ €๋Š” ์ด๊ฒƒ์„ TravelViewController๋กœ ๋ฐ”๊พธ๊ณ ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๊ฟ€ ํด๋ž˜์Šค ์ด๋ฆ„์„ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ˆ„๋ฅด๊ณ  ์šฐ์ธก ๋งˆ์šฐ์Šค๋ฅผ ํด๋ฆญํ•˜์‹œ๋ฉด Refactor๋ผ๊ณ  ๋ณด์ด์‹ค๊ฑฐ์—์š”. ๊ฑฐ๊ธฐ์„œ Rename์„ ํ•˜์‹œ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์Šคํ† ๋ฆฌ๋ณด๋“œ์™€ ํŒŒ์ผ ๋ชจ๋‘ ํ•œ๋ฒˆ์— ๋ณด.. 2020. 12. 14.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ] Cocoa Touch Framework๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜ ์•Œ์•„๋ณผ๊ฑด iOS ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ๊ฐ€์žฅ ์ตœ์ƒ๋‹จ์— ์œ„์น˜ํ•œ ์ฝ”์ฝ”์•„ ํ„ฐ์น˜ ํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋‹ˆ๋‹ค!! ๋จผ์ € ์ฝ”์ฝ”์•„ ํ„ฐ์น˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์ „์— iOS์˜ ์šด์˜์ฒด์ œ๋Š” ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์„๊นŒ์š”? ๋ฐ”๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด Cocoa Touch - Media - Core Services - Core OS ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹จ๊ณ„๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ผ๋งˆ๋‚˜ ์†์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š๋ƒ์— ๋”ฐ๋ผ์„œ ๊ฒฐ์ •๋œ๋‹ค๊ณ  ํ•ด์š”. ์ฆ‰, Core OS๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ๊ฐ€์žฅ ์–ด๋ ค์šด ํ”„๋ ˆ์ž„์›Œํฌ์ด๊ณ  Cocoa Touch๋Š” ๊ฐ€์žฅ ์†์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์ฃ ! ๊ฐ ๊ณ„์ธต์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…๋“œ๋ฆฌ๋ฉด ๊ฐ€์žฅ ์•„๋ž˜ ๋‹จ๊ณ„์— ์žˆ๋Š” Core OS๋Š” ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ๋„คํŠธ์›Œํฌ ๊ฐ์ข… ํŒŒ์ผ ๋“ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋‹ค์Œ์œผ๋กœ Core Servic.. 2020. 12. 8.
[iOS] Background์—์„œ Timer์ž‘๋™ํ•˜๊ฒŒ ํ•˜๊ธฐ(Allow timer to work in the background) Swift ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ํƒ€์ด๋จธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‹ค๊ฐ€ ํ™”๋ฉด์„ ์ž ๊ทธ๊ฑฐ๋‚˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ๊ฐ”๋”๋‹ˆ ํƒ€์ด๋จธ ์‹œ๊ฐ„์ด ์ž˜ ์ž‘๋™๋˜์ง€ ์•Š๋Š”๊ฑฐ์—์š”. ๊ทธ๋ž˜์„œ ์ด๊ฒŒ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ๋Š” ์•ˆ๋Œ์•„๊ฐ€๋Š”๊ฑด๊ฐ€? ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜์ง€? ํ•˜๋ฉด์„œ ๊ตฌ๊ธ€๋ง์„ ํ•˜๋‹ค๋ณด๋‹ˆ "์•ฑ์ด ํฌ์–ด๊ทธ๋ผ์šด๋“œ์— ์žˆ์ง€ ์•Š์œผ ๋ฉด 100% ์ž‘๋™๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค" ๋ผ๊ณ  ํ•˜๋”๋ผ๊ตฌ์š”. (์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๋‹น์—ฐํ•œ ์†Œ๋ฆฌ์ผ์ˆ˜๋„...) ๊ทธ๋ž˜์„œ ์–ด๋–ป๊ฒŒ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์— ๋“ค์–ด๊ฐ”์„ ๋•Œ๋„ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ• ๊นŒ? ์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•˜๋‹ค๊ฐ€ ์ € ๋‚˜๋ฆ„์˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ด์„œ ๊ณต์œ ๋“œ๋ฆฌ๊ณ  ์‹ถ์–ด์„œ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ์ž ๊ทธ๋Ÿฌ๋ฉด ๋ฐ”๋กœ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์˜ˆ์ „์— ์•ฑ๋ผ์ดํ”„์‚ฌ์ดํด์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ์—ˆ๋Š”๋ฐ์š”. (ํ˜น์‹œ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ์—์„œ ํ™•์ธํ•ด์ฃผ์„ธ์š”~) SceneDelgate๋ฅผ ํ†ตํ•ด์„œ .. 2020. 12. 7.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ] Retain Cycle์ด๋ž€?(2) - Strong,Weak,Unowned ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ €๋ฒˆ์— ์•Œ์•„๋ณด์•˜๋˜ Retain Cycle ์„ ๋” ๊นŠ์ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ํ˜น์‹œ Retain Cycle ์˜ ๊ธฐ์ดˆ๋ฅผ ์•Œ๊ณ ์‹ถ์œผ์‹  ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ๋จผ์ € ๋ด์ฃผ์„ธ์š”~ ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค~ Strong ์ด๋ฆ„์ฒ˜๋Ÿผ ๊ฐ•ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์•ž์— weak์ด๋‚˜ unowned๋ฅผ ์“ฐ์ง€ ์•Š์•˜์„ ๋• ๊ธฐ๋ณธ์ ์œผ๋กœ strongํ•˜๊ฒŒ ์ฐธ์กฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ class A๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜ var a:A? ๊ฐ€ ์žˆ์„ ๋• strong var a:A? ์ธ๋ฐ strong์ด default์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žต๋œ ๊ฒƒ์ด์ฃ . Weak ์ด๋ฆ„์ฒ˜๋Ÿผ ์•ฝํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•œ๋‹ค๋Š” ๋œป์ด์—์š”. ์ œ ์ƒ๊ฐ์—” ๋ฆฌํ…Œ์ธ ์‚ฌ์ดํด ์ค‘์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด์š”. ์ €๋ฒˆ ์‹œ๊ฐ„์— ์•Œ์•„๋ณด์•˜๋˜ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ฒฐํ•˜๋Š” .. 2020. 12. 4.
[iOS] ํ™”๋ฉด ํ’€์Šคํฌ๋ฆฐ์œผ๋กœ ๋งŒ๋“œ๋Š”๋ฒ• ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์š”์ฆ˜์—” Swift๋กœ ํ…ŒํŠธ๋ฆฌ์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ๋Š”๋ฐ ์ž๊พธ ํ™”๋ฉด์ด ํ’€์Šคํฌ๋ฆฐ์œผ๋กœ ์•ˆ๋‚˜์˜ค๊ณ  ์• ๋งคํ•˜๊ฒŒ ์ค‘๊ฐ„์‚ฌ์ด์ฆˆ? ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋‚˜์˜ค๋”๋ผ๊ตฌ์š”. ๋ฐ”๋กœ ์•„๋ž˜์ฒ˜๋Ÿผ Targets - General๋กœ ์ด๋™ํ•˜์…”์„œ ์•„๋ž˜๋ณด๋ฉด App Icons and Launch Images๋ผ๊ณ  ์žˆ์„๊ฑฐ์—์š”. ์ด ๋ถ€๋ถ„์—์„œ Launch Screen File์ด ๋น„์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— main์„ ์ฑ„์›Œ์ฃผ์…”์•ผ ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ full screen์œผ๋กœ ์ •์ƒ์ ์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค !!! 2020. 12. 1.
[iOS]Cell ํƒญํ–ˆ์„ ๋•Œ Segue๋กœ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๋Š” ๋ฒ• (didSelect & Pass Data by Segue) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์ œ๊ฐ€ ์‹ค์ˆ˜ํ•œ ๊ฒƒ์— ๋Œ€ํ•ด์„œ ๊ธ€์„ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•ด์š” ์Œ...๋Œ€์ถฉ ์„ค๋ช…ํ•˜๋ฉด ์ฝœ๋ ‰์…˜๋ทฐ๋ฅผ didSelectํ–ˆ์„ ๋•Œ segue๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์ด๊ฒŒ ์…€์„ ํƒญํ•˜์ž๋งˆ์ž segue๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ์…€์— ์žˆ๋Š” ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋ฌด์Šจ ๋ง์ด๋ƒ๋ฉด... ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ segue ์‹คํ–‰์„ ์ฝœ๋ ‰์…˜๋ทฐ ์…€์— ๋‹ฌ์•„๋†จ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๋„์ฐฉํ•˜๋Š” ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์— bigCategory๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ prepare์—์„œ ์ค€๋น„ํ•œ ๋‹ค์Œ ๋ณด๋‚ด๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด bigCategory๋Š” didSelectItem์‹œ ํ•ด๋‹น ์…€์˜ ํ…์ŠคํŠธ์˜ ๊ฐ’์œผ๋กœ ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๋กœ ์ด๋ฏธ segue๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋‚˜์„œ ๊ฐ’์ด ๊ฒฐ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค... "๊ทธ๋ ‡๋‹ค๋ฉด performSegue๋ฅผ.. 2020. 11. 30.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ] Retain Cycle์ด๋ž€?(1) - ๊ฐœ๋… ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!! ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๊ฑด ์ง€๋‚œ ์‹œ๊ฐ„ ARC์— ์ด์–ด์„œ Retain Cycle ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ด์š”! ํ˜น์‹œ ARC๋ฅผ ์•„์ง ์ž˜ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ๋จผ์ € ๋ณด๊ณ  ์˜ค์‹œ๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™์•„์š”! ์ž ๊ทธ๋Ÿฌ๋ฉด ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! ์šฐ์„  Retain Cycle ์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด์„œ ์ฐธ์กฐํ•˜๋Š” ๊ฐ’์€ ๋ฉ”๋ชจ๋ฆฌ ์–ด๋–ค ๋ถ€๋ถ„์— ํ•ด๋‹น๋ ๊นŒ์š”? ๋ฐ”๋กœ "Heap" ์ด๋ผ๋Š” ์˜์—ญ์ด์—์š”. "Heap" ์ด๋ผ๋Š” ์˜์—ญ์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ €์žฅ๋˜๊ธฐ ์œ„ํ•ด์„  ํ•œ ๊ณต๊ฐ„์ด ํ•„์š”ํ•œ๋ฐ์š”. ๋ฐ”๋กœ ๊ทธ ๊ณต๊ฐ„์„ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”! ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋ง์ด์ฃ . ์ž ๊ทธ๋ ‡๋‹ค๋ฉด ๋ณธ๊ฒฉ์ ์œผ๋กœ Retain Cycle์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณผ๊นŒ์š”? ๋จผ์ € Retain์€ ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ์ €๋ ‡๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋Š” ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์—ˆ์„ ๋•Œ .. 2020. 11. 30.
[iOS ๋ฉด์ ‘์งˆ๋ฌธ] ARC(Auto Reference Counting)๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!! ์ด๋ฒˆ ์‹œ๊ฐ„์— ์•Œ์•„๋ณผ๊ฑด ๋ฐ”๋กœ "ARC(Auto Reference Couting)" ๋ผ๋Š” ๊ฒƒ์ธ๋ฐ์š”. Memory ์ด ARC๊ธฐ๋ฒ•์€ ๋ฐ”๋กœ iOS์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. "์™œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ์–ด์•ผ ๋˜๋Š”๋ฐ?" ๋งŒ์•ฝ ์“ธ๋ชจ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ง€๋ฉด ์•ฑ์ด ๋Š๋ ค์ง€๊ณ  ์ ์ •๋Ÿ‰์„ ์ดˆ๊ณผํ•˜๋ฉด ๊ฒฐ๊ตญ ์•ฑ์ด ๊บผ์ ธ๋ฒ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์œ ์ €๋ฅผ ์ดํƒˆํ•˜๊ฒŒ ๋งŒ๋“ค์ˆ˜ ์žˆ๋Š” ์น˜๋ช…์ ์ธ ๊ฒƒ์ด์ฃ . "๊ทธ๋Ÿผ ์“ธ๋ชจ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” ์™œ ์ƒ๊ธฐ๋Š”๊ฑด๋ฐ?" ์“ธ๋ชจ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๋ง๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ด๋””์„ ๊ฐ€ ์ƒˆ๊ณ  ์žˆ๋‹ค๋Š” ๋ง๋กœ๋„ ํ‘œํ˜„๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ƒŒ๋‹ค๋Š” ๊ฒƒ์„ ๋ฉ”๋ชจ๋ฆฌ ๋ฆญ(๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜) ํ˜„์ƒ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ์š”. ์ด ๋ฉ”๋ชจ๋ฆฌ ๋ฆญ ํ˜„์ƒ์„ ์ž๋™์œผ๋กœ ๋ง‰์•„์ฃผ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ARC์ž…๋‹ˆ๋‹ค ! Auto Reference Coun.. 2020. 11. 21.
728x90
๋ฐ˜์‘ํ˜•