์ตœ์‹  ๊ธ€

more

[ iOS ] scrolling ์‹œ ํ‚ค๋ณด๋“œ ๋‚ด๋ฆฌ๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ Delegate ํŒจํ„ด ์ดํ•ด

View์™€ ViewController๋ทฐ๋Š” ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„ ์†Œํ†ต์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์ € ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ๋ชจ์Šต์œผ๋กœ ๋ณด์ผ์ง€ ๋˜๋Š” ์‚ฌ์šฉ์ž์˜ ๋™์ž‘(select)์„ ๋ฐ›์•„๋“ค์ด๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฐ๋Šฅ์„ ๋งก์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋Š”, ๋ทฐ๊ฐ€ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•œ ๊ฒƒ๋“ค์„ ๋ฐ›์•„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•˜๊ฑฐ๋‚˜ ๋™์ž‘(select)์— ๋Œ€ํ•œ ๋ฐ˜์‘์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ„ฐ์น˜๋  ๋•Œ ๋˜๋Š” ์Šฌ๋ผ์ด๋“œ๋  ๋•Œ ๋“ฑ ๋ทฐ๊ฐ€ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ›๋Š” ์—ฌ๋Ÿฌ ์‹œ์ ์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹œ์ ์— ์ ์ ˆํ•œ ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์ด ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์˜ ์—ญํ• ์ž…๋‹ˆ๋‹ค.ย ๋”ฐ๋ผ์„œ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ทฐ๋ฅผ ์•Œ์•„์•ผ ํ•˜์ง€๋งŒ, ๋ทฐ๋Š” ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์•Œ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋ทฐ๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ, ์ด๋ฅผ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์•Œ๊ณ  ์ ์ ˆํ•œ ์‹œ์ ์— ์ ..

iOS 2025.01.23 0

[ Swift ] Class Singleton ๐Ÿ†š Struct Singleton

์‹ฑ๊ธ€ํ„ด ํŒจํ„ด์‹ฑ๊ธ€ํ„ด ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋กœ, ๋‹จ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.๋”ฐ๋ผ์„œ ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„๋งŒ ๊ณ„์† ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ฌ์šฉ ์‹œ ์ด๋ฏธ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ์ธ์Šคํ„ด์Šค ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๋„ ๋น ๋ฆ…๋‹ˆ๋‹ค.ย ํ•˜์ง€๋งŒ ์ „์—ญ์ ์œผ๋กœ ์ƒ์„ฑ๋˜์–ด ๋งŽ์€ ๊ณณ์—์„œ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋“ฑ์˜ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ํ™˜๊ฒฝ์—์„œ ๋™์‹œ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ swift์—์„œ๋Š” ์ดˆ๊ธฐํ™” ์‹œ์ ์„ ๋ฏธ๋ฃฌ(lazily) static ํ”„๋กœํผํ‹ฐ๋ฅผ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค๋ฅผ thread-safetyํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.The free function dispatch_once is no longer available in Swift. In Swift, you can use la..

Swift 2025.01.10 0

[ iOS ] UICollectionViewCell์—์„œ ImageView ์ดˆ๊ธฐํ™” ์‹œ์ ๊ณผ awakeFromNib()

์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ํ†ตํ•ด ImageView๋ฅผ ๋ฐฐ์น˜ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ๋‹ค๊ณ  ํ•ฉ์‹œ๋‹ค. ๋ชจ์„œ๋ฆฌ์— ๋‘ฅ๊ทผ ํšจ๊ณผ๋ฅผ ์ฃผ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์Šคํ† ๋ฆฌ๋ณด๋“œ๋งŒ์œผ๋กœ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ”๋“œ์—์„œ UIView.layer.cornerRadius๋ฅผ ์ ์šฉํ•ด ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๋ณดํ†ต ์Šคํ† ๋ฆฌ๋ณด๋“œ์™€ ์ฝ”๋“œ๋Š” ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.UIViewController์—์„œ๋Š” ์•„์›ƒ๋ › ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ๋•Œ ๋ณดํ†ต viewDidLoad ๋‚ด๋ถ€์— ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ UICollectionViewCell์—์„œ ์•„์ดํ…œ์œผ๋กœ ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ImageView๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด๋””์— ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?ย ย ๋จผ์ € ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ถ€ํ„ฐ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UIView์˜ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.init(frame:)init(coder:)์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด UI๋ฅผ..

iOS 2025.01.08 0

iOS

more

[ iOS ] scrolling ์‹œ ํ‚ค๋ณด๋“œ ๋‚ด๋ฆฌ๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ Delegate ํŒจํ„ด ์ดํ•ด

View์™€ ViewController๋ทฐ๋Š” ํ™”๋ฉด์— ๋ณด์ด๋Š” ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„ ์†Œํ†ต์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์ € ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ๋ชจ์Šต์œผ๋กœ ๋ณด์ผ์ง€ ๋˜๋Š” ์‚ฌ์šฉ์ž์˜ ๋™์ž‘(select)์„ ๋ฐ›์•„๋“ค์ด๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฐ๋Šฅ์„ ๋งก์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋Š”, ๋ทฐ๊ฐ€ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•œ ๊ฒƒ๋“ค์„ ๋ฐ›์•„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•˜๊ฑฐ๋‚˜ ๋™์ž‘(select)์— ๋Œ€ํ•œ ๋ฐ˜์‘์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ„ฐ์น˜๋  ๋•Œ ๋˜๋Š” ์Šฌ๋ผ์ด๋“œ๋  ๋•Œ ๋“ฑ ๋ทฐ๊ฐ€ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ›๋Š” ์—ฌ๋Ÿฌ ์‹œ์ ์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹œ์ ์— ์ ์ ˆํ•œ ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์ด ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์˜ ์—ญํ• ์ž…๋‹ˆ๋‹ค.ย ๋”ฐ๋ผ์„œ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ทฐ๋ฅผ ์•Œ์•„์•ผ ํ•˜์ง€๋งŒ, ๋ทฐ๋Š” ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์•Œ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋ทฐ๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ, ์ด๋ฅผ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์•Œ๊ณ  ์ ์ ˆํ•œ ์‹œ์ ์— ์ ..

iOS 2025.01.23 0

[ iOS ] UICollectionViewCell์—์„œ ImageView ์ดˆ๊ธฐํ™” ์‹œ์ ๊ณผ awakeFromNib()

์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ํ†ตํ•ด ImageView๋ฅผ ๋ฐฐ์น˜ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ๋‹ค๊ณ  ํ•ฉ์‹œ๋‹ค. ๋ชจ์„œ๋ฆฌ์— ๋‘ฅ๊ทผ ํšจ๊ณผ๋ฅผ ์ฃผ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์Šคํ† ๋ฆฌ๋ณด๋“œ๋งŒ์œผ๋กœ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ”๋“œ์—์„œ UIView.layer.cornerRadius๋ฅผ ์ ์šฉํ•ด ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๋ณดํ†ต ์Šคํ† ๋ฆฌ๋ณด๋“œ์™€ ์ฝ”๋“œ๋Š” ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.UIViewController์—์„œ๋Š” ์•„์›ƒ๋ › ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ๋•Œ ๋ณดํ†ต viewDidLoad ๋‚ด๋ถ€์— ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ UICollectionViewCell์—์„œ ์•„์ดํ…œ์œผ๋กœ ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ImageView๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด๋””์— ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?ย ย ๋จผ์ € ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ถ€ํ„ฐ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UIView์˜ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.init(frame:)init(coder:)์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด UI๋ฅผ..

iOS 2025.01.08 0

[ iOS ] Raw String

Raw StringRaw String์€ escape ๋ฌธ์ž์˜ ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Swift5๋ถ€ํ„ฐ ์ง€์›ํ•˜๋Š” ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๊ตฌ๋ถ„ ๊ธฐํ˜ธ์ž…๋‹ˆ๋‹ค.escape ๋ฌธ์ž๋Š” ์œ ์šฉํ•˜๊ณ  ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, escape ์‹œํ€€์Šค๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์ž์—ด์€ ๊ฐ€๋…์„ฑ์ด ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” โ€œrawโ€, ์ฆ‰ ์›์‹œ ๊ทธ๋Œ€๋กœ์˜ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๊ตฌ๋ฌธ์„ ๋Œ€์ฒด์ œ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ raw string ๋ฆฌํ„ฐ๋Ÿด์€ escape ์—†์ด ๋ฐฑ์Šฌ๋ž˜์‹œ(\)์™€ ๋”๋ธ” ์ฟผํ„ฐ(โ€)๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ โ€œrawโ€ํ•œ ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.ย ย ย ย Raw String ์ง€์› ๋ฐฐ๊ฒฝย swift-evolution/proposals/0200-raw-string-escaping.md at main ยท swiftlang/swift-evolutio..

iOS 2024.12.26 0

์‹œํ–‰์ฐฉ์˜ค

more

[ Swift ์‹œํ–‰์ฐฉ์˜ค ] ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด ๋ชจ๋ธ์„ ๋ถ„๋ฆฌํ•˜๊ธฐ (ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•)

๋ฐฐ๊ฒฝ์Šคํ† ๋ฆฌ๋ณด๋“œ๋กœ table view ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋˜ ์ค‘ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ table view์— ๋“ค์–ด๊ฐˆ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์กฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ์ฝ”๋“œ์—” ์ด์œ ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์Šตํ•œ ์ฝ”๋“œ๋ฅผ ๋‘๊ณ  ์™œ ์ด๋ ‡๊ฒŒ ์ฝ”๋”ฉํ–ˆ์„๊นŒ ์ƒ๊ฐ์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.ย ย ย ํ™”๋ฉด ์ดํ•ด ๋ฐ ์ฝ”๋“œ ๋ณด๊ธฐํœด๋Œ€ํฐ์˜ ์„ค์ • ํ™”๋ฉด์ฒ˜๋Ÿผ table view controller์— ๊ณ ์ •๋œ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก์„ ์‚ฝ์ž…ํ•˜์—ฌ ๋ณด์—ฌ์ฃผ๋Š” ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค. ย 3๊ฐœ์˜ ๋Œ€๋ถ„๋ฅ˜์™€ ๊ทธ ์•„๋ž˜ ์†Œ๋ถ„๋ฅ˜ title์ด ์žˆ์–ด ๊ฐ ์„น์…˜ ๋ณ„๋กœ ํ•ด๋‹นํ•˜๋Š” ํ•ญ๋ชฉ์„ ์‚ฝ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.import UIKitclass TableViewController: UITableViewController { override func viewDidLoad() { ..

[ iOS ์‹œํ–‰์ฐฉ์˜ค ] MVC ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์„ ์ ์šฉํ•ด๋ณด์ž

๐Ÿค” ๋ฐฐ๊ฒฝ & ๋ฌธ์ œ์— ์—…๋ฐ์ดํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜๋ก ๋ถ„๋ช…ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ ๊ธฐ์ค€์ด ํ”„๋กœ์ ํŠธ ๊ฐ€๋…์„ฑ ๋‚ฎ์ถ”๊ณ  ์žˆ์Œ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”๋ถˆ์–ด ์ผ๋ฐ˜ํ™”๋˜์ง€ ์•Š์€ View ๊ตฌํ˜„์œผ๋กœ, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋น„ํšจ์œจ์ ์ธ ๋ฐ˜๋ณต ์ž‘์—…์ด ์žˆ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”๋ถˆ์–ด ๋‚ด์šฉ ๊ฒฐํ•ฉ๋„๋ฅผ ๊ฐ€์ง„ BottomMenuViewController์™€ ๊ฐ™์ด, ๊ฐ์ฒด ๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์•„ ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ๋ฐ ๊ฐœ์„  ์‹œ ์ง„ํ–‰์˜ ์–ด๋ ค์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. (๋‚ด์šฉ ๊ฒฐํ•ฉ๋„: ๊ฐœ์ฒด ๊ฐ„ ์ธํ„ฐํŽ˜์ด์Šค ์—†์ด ๋‚ด๋ถ€์— ์ง์ ‘ ์ ‘๊ทผํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„) ๐Ÿ•ต๏ธ ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฒ•์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์„ ๋„์ž…ํ•ด, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ์Šคํ…œ ๊ตฌ์กฐ์™€ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ๊ฐœ์ฒด ๊ฐ„ ์ ์ ˆํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ View์˜ ์ผ๋ฐ˜ํ™”์— ์ง‘์ค‘..

[ iOS ์‹œํ–‰์ฐฉ์˜ค ] CollectionView์— Cell์ด ํ•˜๋‚˜๋งŒ ๋ณด์ด๋Š” ์ด์œ 

๐Ÿ‘ฉโ€๐Ÿ’ป๋ฐฐ๊ฒฝ๐Ÿ‘ฉโ€๐Ÿ’ปChapterList๋ฅผ ๊ฐœ๋ฐœํ•˜๋˜ ์ค‘, ๋ถ„๋ช… item์ด 3๊ฐœ๊ฐ€ ์žˆ๋Š”๋ฐ cell์ด 1๊ฐœ๋งŒ ๋ณด์ด๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค! ๊ทธ๋ž˜์„œ ์ด์ „์— ์ž‘์—…ํ–ˆ๋˜ BookList์—์„œ๋„ ํ™•์ธํ•ด ๋ณด๋‹ˆ ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.. BookList์—์„œ๋Š” item์ด ํ•˜๋‚˜๋งŒ ์žˆ์—ˆ๋˜์ง€๋ผ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๋ถ„๋ช… BookList์— ๊ฐ์ฒด๊ฐ€ 3๊ฐœ๊ฐ€ ๋‹ด๊ธด ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์šฉํ•  ๋•Œ๋งŒ ํ•ด๋„ ํ™”๋ฉด์— item๋“ค์ด ์ž˜ ๋‚˜ํƒ€๋‚ฌ๋Š”๋ฐ, ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์šฉํ•œ ๋’ค ์ž‘์—…ํ–ˆ๋˜ Section๋ณ„ UI ์ž‘์—…์—์„œ ๋กœ์ง์ด ๋ฐ”๋€Œ๋ฉด ๋ฐœ์ƒํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. CollectionViewLayout๋ถ€ํ„ฐ DiffableDataSource๋ฅผ ๊ฑฐ์ณย Snapshot๊นŒ์ง€ ๋ฌธ์ œ๋ฅผ ์ฐพ์•„๋ณด๋Š” ๊ณผ์ •์„ ๊ธฐ๋กํ•ด๋ณด์ž~ย ย ย ย ย ย ๐Ÿ–ผ๏ธ CollectionViewCompositionalLa..

Swift

more

[ Swift ] Class Singleton ๐Ÿ†š Struct Singleton

์‹ฑ๊ธ€ํ„ด ํŒจํ„ด์‹ฑ๊ธ€ํ„ด ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋กœ, ๋‹จ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.๋”ฐ๋ผ์„œ ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„๋งŒ ๊ณ„์† ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ฌ์šฉ ์‹œ ์ด๋ฏธ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ์ธ์Šคํ„ด์Šค ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๋„ ๋น ๋ฆ…๋‹ˆ๋‹ค.ย ํ•˜์ง€๋งŒ ์ „์—ญ์ ์œผ๋กœ ์ƒ์„ฑ๋˜์–ด ๋งŽ์€ ๊ณณ์—์„œ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋“ฑ์˜ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ํ™˜๊ฒฝ์—์„œ ๋™์‹œ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ swift์—์„œ๋Š” ์ดˆ๊ธฐํ™” ์‹œ์ ์„ ๋ฏธ๋ฃฌ(lazily) static ํ”„๋กœํผํ‹ฐ๋ฅผ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค๋ฅผ thread-safetyํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.The free function dispatch_once is no longer available in Swift. In Swift, you can use la..

Swift 2025.01.10 0

[ Swift ] Swift๋ž€?

Swift Swift is a general-purpose programming language that's approachable for newcomers and powerful for experts. It is fast, modern, safe, and a joy to write.์œ„ ๊ธ€์€ Swift.org์—์„œ ๊ฐ€์žฅ ๋จผ์ € ๋ณผ ์ˆ˜ ์žˆ๋Š” Swift ์†Œ๊ฐœ๊ธ€์ด๋‹ค. Swift๋Š” ์ ‘๊ทผ์„ฑ์ด ์ข‹๊ณ  ๊ฐ•๋ ฅํ•œ ๋ฒ”์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋ฉฐ, ๋น ๋ฅด๋ฉฐ ํ˜„๋Œ€์ ์ด๊ณ  ์•ˆ์ „ํ•˜์—ฌ ์ฆ๊ฒ๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. interactive programming languageSwift์—์„œ ๊ฐ•์กฐ๋˜๋Š” ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์ƒํ˜ธ์ž‘์šฉ์ด๋‹ค. ์ปดํŒŒ์ผ ์–ธ์–ด์ž„์—๋„, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ตœ์ ํ™”๋˜์–ด์žˆ์–ด ๋งˆ์น˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ฒ˜๋Ÿผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ๋‹ค.์ปดํŒŒ์ผ..

Swift 2023.10.08 0

[ Swift ] zip(_:_:)

Documentation /Swift /Swift Standard Library /Collections /zip(_:_:) zip(_:_:) func zip( _ sequence1: Sequence1, _ sequence2: Sequence2 ) -> Zip2Sequence where Sequence1 : Sequence, Sequence2 : Sequence ๋‘ ๊ฐœ์˜ sequence๋กœ ๊ตฌ์„ฑํ•œ sequence ์Œ์„ ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜์ด๋‹ค. Array, String, Range์ฒ˜๋Ÿผ Sequence ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•œ ํƒ€์ž…์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์˜จ๋‹ค. ์ฆ‰, ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ํƒ€์ž…์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ€์ง„๋‹ค ํŠœํ”Œ sequence ๋ฐ˜ํ™˜ zip์„ ์‚ฌ์šฉํ•ด ๋‘ sequence๋ฅผ ํ•ฉ์น˜๋ฉด ๊ฐ ์›์†Œ๋“ค์ด ๋™์ผํ•œ ์ธ๋ฑ์Šค ์›์†Œ๋“ค๊ณผ ์ง์„ ์ง€์–ด ํŠœํ”Œ ํƒ€์ž…์˜ Z..

Swift 2023.10.08 1

์งง์€

more
728x90