๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Dev Blog

iOS9

[Swift] ARC ๊ฐ•ํ•œ ์ฐธ์กฐ๋Š” ๋ฌด์—‡์ด๊ณ  ์™œ ํ•„์š”ํ•œ๊ฐ€์š”?๊ฐ•ํ•œ ์ฐธ์กฐ๋Š” ์ฐธ์กฐ ํƒ€์ž… ์ธ์Šคํ„ด์Šค์˜ ์ฐธ์กฐ ๊ณ„์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. Swift๋Š” ARC๋ผ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด๋Š” ์ฐธ์กฐ ๊ณ„์ˆ˜๊ฐ€ 0์ด ๋˜๋Š” ์ธ์Šคํ„ด์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฐ•ํ•œ ์ฐธ์กฐ๊ฐ€ ์กด์žฌํ•ด์•ผ ์ฐธ์กฐ ๊ณ„์ˆ˜๊ฐ€ 0์ด ๋˜์ง€ ์•Š์•„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜์ง€ ์•Š๊ณ  ์œ ์ง€์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. strong, weak, unowned reference๋Š” ๊ฐ๊ฐ ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ์š”?๊ฐ•ํ•œ ์ฐธ์กฐ๋Š” ์ฐธ์กฐ ๊ณ„์ˆ˜๋ฅผ 1 ์ฆ๊ฐ€์‹œ์ผœ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์œ ์ง€์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•ฝํ•œ ์ฐธ์กฐ๋Š” ๊ฐ•ํ•œ ์ฐธ์กฐ๋ฅผ ํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•ํ•œ ์ˆœํ™˜ ์ฐธ์กฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ•ํ•œ ์ฐธ์กฐ์™€ ๋‹ฌ๋ฆฌ ์ฐธ์กฐ ๊ณ„์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค์ง€ ์•Š๊ณ  ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” .. 2024. 10. 30.
[Swift] Extension ์Šค์œ„ํ”„ํŠธ์—์„œ Extension์€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋‚˜์š”? Swift์—์„œ Extension์€ Class, Struct, Enum, Protocol ํƒ€์ž…์— ๋ฉ”์„œ๋“œ๋‚˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Extension ๊ทœ์น™์€ ์ €์žฅ ํ”„๋กœํผํ‹ฐ๋Š” ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๊ณ , ์—ฐ์‚ฐ ํ”„๋กœํผํ‹ฐ๋งŒ ์ถ”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์†Œ๋ฉธ์ž๋Š” ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๊ณ , ์ƒ์„ฑ์ž๋Š” convenience init ๋งŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ ๊ธฐ๋Šฅ ํ™•์žฅ ๊ด€์ ์—์„œ์˜ Extension์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ๊ธฐ๋Šฅ์˜ ํ™•์žฅ์„ ํ•  ๋•Œ์—๋Š” ์ƒ์†์„ ์‚ฌ์šฉํ•ด์„œ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ์ˆ˜์ง์  ํ™•์žฅ์€ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์•„์ ธ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๊ตฌํ˜„์ด๋‚˜ ๋ณ€๊ฒฝ์ด ํ•˜์œ„ ํด๋ž˜์Šค์— ์˜ํ–ฅ์„ ๋ผ์น˜๋ฏ€๋กœ ์บก์Šํ™”๋ฅผ ํ•ด์น  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋Š” ์ƒ์†์œผ๋กœ ๊ธฐ๋Šฅ ํ™•์žฅ์„ ํ–ˆ์„ ์‹œ ์บก์Šํ™”๋ฅผ ํ•ด์น˜๋Š” ์ฝ”๋“œ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.. 2024. 10. 29.
[Swift] Objective-C @objc๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋‚˜์š”?@objc ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” Swift ์ฝ”๋“œ๊ฐ€ Objective-C ๊ธฐ๋ฐ˜ API์—์„œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ UIKit์—์„œ Target-Action ํŒจํ„ด์˜ #selector์— ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ์— ๋ถ™ํ˜€์ง‘๋‹ˆ๋‹ค. ๋˜ํ•œ, KVC์—์„œ ์‚ฌ์šฉ๋˜๊ณ  dynamic ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ KVO๋ฅผ ํ™œ์šฉํ•  ๋•Œ์—๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.  ๐Ÿ“Œ Target-Action ํŒจํ„ด Target-Action ํŒจํ„ด์€ Apple์˜ UI ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ๋ฏธ๋ฆฌ ์ง€์ •๋œ ๊ฐ์ฒด(ํƒ€๊ฒŸ)์˜ ๋ฉ”์†Œ๋“œ(์•ก์…˜)๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ด๋ฒคํŠธ์˜ ๋ฐœ์ƒ๊ณผ ๊ทธ์— ๋Œ€ํ•œ ๋ฐ˜์‘์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.. 2024. 10. 28.
[Swift] - ์ฝœ๋ ‰์…˜ ํƒ€์ž… (Collection Types) ์ฐธ๊ณ  ์ž๋ฃŒ ์ฝœ๋ ‰์…˜ ํƒ€์ž… (Collection Types) - Swiftlet oddDigits: Set = [1, 3, 5, 7, 9] let evenDigits: Set = [0, 2, 4, 6, 8] let singleDigitPrimeNumbers: Set = [2, 3, 5, 7] // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]bbiguduk.gitbook.io Swift ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ํ•œ๊ตญ์–ด๋กœ ๋ฒˆ์—ญํ•œ ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค.๐Ÿ’ป ์ฐธ๊ณ  ์ž๋ฃŒ์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ ๋œ ์  ํ˜น์€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ ๋‹ค๋ฅธ ์ ๋“ค์„ ์œ„์ฃผ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ฐธ๊ณ  ์ž๋ฃŒ ์ด์™ธ์—๋„ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ณต๋ถ€ํ•œ ๋ถ€๋ถ„๋„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ArrayArray๋Š” ๋ฉค๋ฒ„๊ฐ€ ์ˆœ์„œ(์ธ๋ฑ์Šค)๋ฅผ ๊ฐ€์ง„ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ์˜.. 2024. 10. 27.