728x90
๋ฐ˜์‘ํ˜•
[Swift] some, any ํ‚ค์›Œ๋“œ

WWDC 2022 > Embrace Swift Generics ์— ๋‚˜์˜ค๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. Feed (์‚ฌ๋ฃŒ, ๋จน์ด) ๋ฅผ associatedtype์œผ๋กœ ๊ฐ€์ง€๋Š” Animal ํ”„๋กœํ† ์ฝœ์„ ์˜ˆ์ œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. [1] AS IS Farm์— feed๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ, ์•„๋ž˜ ๋‘๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์คฌ์–ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์†Œ๋“œ๊ฐ€ ์ข€ ๋ณต์žกํ•ด๋ณด์ž…๋‹ˆ๋‹ค. [2] TO BE ํ•˜์ง€๋งŒ!! ์ด์ œ opaque type์ธ some์„ ์‚ฌ์šฉํ•˜์—ฌ, ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Swift 5.7๋ถ€ํ„ฐ๋Š” some์„ parameter type์—๋„ ์“ธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค ๐Ÿ‘ (์ด์ „์—๋Š” ํ”„๋กœํผํ‹ฐ ํƒ€์ž…, ๋ฆฌํ„ด ํƒ€์ž…์—๋งŒ ์“ธ ์ˆ˜ ์žˆ์—ˆ์Œ) [3] some ๊ณผ any (1) ํ•˜์ง€๋งŒ,, some์€ ์ œ์•ฝ์ด ์žˆ๋Š”๋ฐ,, ์•„๋ž˜์™€ ๊ฐ™์ด..

๐Ÿ/Swift 2022. 7. 16. 20:29
[iOS] DiffableDataSource ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ ์ •๋ฆฌ

UITableViewDiffableDataSource์˜ 4๊ฐ€์ง€ apply ๋ฉ”์„œ๋“œ ๊ธ€์—์„œ ์ง„ํ–‰ํ•œ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ๊ณ„์† ํ™œ์šฉํ•ด์„œ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์„ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. [1] ์•„์ดํ…œ์ด๋‚˜ ์ธ๋ฑ์Šค ์ฐพ์„ ๋•Œ, datasource API๋ฅผ ์จ์•ผํ• ๊นŒ vs snapshot API๋ฅผ ์จ์•ผํ• ๊นŒ? UITableViewDiffableDataSource ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ API๊ฐ€ ์žˆ๊ณ  NSDiffableDataSouceSnapshot์€ ์•„๋ž˜์™€ ๊ฐ™์€ API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์„ ํ™œ์šฉํ•ด์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์„ ๋‚˜์—ดํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. (iOS 13 ๊ธฐ์ค€!!) ์–ด๋–ค ๊ฒƒ์„ ์“ฐ๋˜ ์ƒ๊ด€์—†์ง€๋งŒ,, โœ”๏ธ Section์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋Š” ํ™”๋ฉด์ด๋ผ๋ฉด snapshot API // multiple sections ๊ด€๋ จํ•ด์„œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋‹ˆ๊นŒ โœ”๏ธ ์ œ๊ฐ€ ์ž‘์„ฑํ•œ ์˜ˆ์ œ..

๐Ÿ/iOS 2022. 6. 29. 11:42
[Swift] LazySequence

[1] ์šฉ์–ด์ •๋ฆฌ (์ถœ์ฒ˜: ์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ) ์• ํ”Œ ๋ฌธ์„œ(Sequence and Collection)์— 'eager' ์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋‚˜์˜ค๋Š” ๋ฐ ์ด๊ฒƒ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ ์ฑ…๋‚ด์šฉ์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค! โœ”๏ธ eager order (step-by-step) - ์š”์†Œ ์ „์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์—ฐ์‚ฐ์„ ์ฐจ๊ทผ์ฐจ๊ทผ ์ ์šฉํ•œ๋‹ค. - ๊ฐ ๋‹จ๊ณ„์—์„œ ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด์ ธ ์ƒˆ๋กœ์šด ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค. โœ”๏ธ lazy order (element-by-element) - ์š”์†Œ ํ•˜๋‚˜ํ•˜๋‚˜์— ์ง€์ •ํ•œ ์—ฐ์‚ฐ์„ ํ•œ๊บผ๋ฒˆ์— ์ ์šฉํ•œ๋‹ค. - ์ตœ์ข… ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด์ง€๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ฐ ๋‹จ๊ณ„์—์„œ ์—ฐ์‚ฐ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค. ==> ์‚ฌ์ „์  ์˜๋ฏธ๋กœ lazy = ๊ฒŒ์œผ๋ฅธ, eager = ์—ด๋ ฌํ•œ(์—ด์‹ฌ์ธ) ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ € ๋‘๋‹จ์–ด๊ฐ€ ๊ฐ™์ด ์“ฐ์ด๋Š” ๊ฒƒ ๊ฐ™์•„์š”! [ eager vs lazy ] ..

๐Ÿ/Swift 2022. 5. 25. 09:22
[Swift] @inlinable๊ณผ @usableFromInline

Swift Docs > Attribute ๋ฅผ ๋ณด๋ฉด, Swift์˜ inline ๊ด€๋ จ attribute ๋กœ inlinable๊ณผ usableFromInline ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. [1] inline ํ•œ์ •์ž๋ž€? ์šฐ์„  ์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ ์ฑ… ๋‚ด์šฉ์„ ํ†ตํ•ด inline ๊ฐœ๋…์„ ๋จผ์ € ์•Œ์•„๋ด…์‹œ๋‹ค! inline ํ•œ์ •์ž์˜ ์—ญํ• ์€ ์ปดํŒŒ์ผ ์‹œ์ ์— 'ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ถ€๋ถ„'์„ 'ํ•จ์ˆ˜์˜ ๋ณธ๋ฌธ' ์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•จ์ˆ˜ ๋ถ„๋ฌธ์œผ๋กœ ์ ํ”„ํ•˜๊ณ , ๋ณธ๋ฌธ์˜ ๋ชจ๋“  ๋ฌธ์žฅ์„ ํ˜ธ์ถœํ•œ ๋’ค์— ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ๋˜ ์œ„์น˜๋กœ ๋‹ค์‹œ ์ ํ”„ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ inline ํ•œ์ •์ž๋ฅผ ๋ถ™์—ฌ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋ฉด, ์ด๋Ÿฌํ•œ ์ ํ”„๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. # ์žฅ์  ๋ชจ๋“  ํ•จ์ˆ˜๋Š” inline ํ•œ์ •์ž๋ฅผ ๋ถ™์ด๋ฉด ์กฐ๊ธˆ ๋” ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๋ฆฌํ„ด์„ ์œ„ํ•ด ์ ..

๐Ÿ/Swift 2022. 5. 17. 22:38
๊ณต์ง€์‚ฌํ•ญ
Total
713,410
Today
674
Yesterday
1,595
«   2022/09   »
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
๊ธ€ ๋ณด๊ด€ํ•จ