ram2 ๐Ÿš—

[Swift] didSet ์ด๋ž€? ๋ณธ๋ฌธ

๐ŸŽ Swift

[Swift] didSet ์ด๋ž€?

coram22 2024. 1. 18. 15:42
728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

 

didSet์„ ์–ด์ฉŒ๋‹ค ๋งŒ๋‚˜๊ฒŒ ๋๋ƒ๋ฉด,

๋‚ด๊ฐ€ ์ฐธ์—ฌํ•˜๊ณ  ์žˆ๋Š” iOS ์Šคํ„ฐ๋””์—์„œ ๋งก์€ ํŒŒํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋‹ค ๋งŒ๋‚˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ฐœ๋ฐœํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ํ™”์‚ดํ‘œ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋‚ ์งœ๋ฅผ ๋ฐ”๊พผ๋‹ค.
2. ๋‚ ์งœ๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค data filter์˜ ๊ธฐ์ค€ ๋‚ ์งœ๋ฅผ ์„ ํƒ๋œ ๋‚ ์งœ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
3. ๋ฐ”๋€ filter์˜ ๋‚ ์งœ์— ๋”ฐ๋ผ ์ด์— ๋งž๊ฒŒ filtering ๋œ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ณด์—ฌ์ค€๋‹ค.

 

์ด๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ธฐ๊ณ , ํ™”๋ฉด์„ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •์—์„œ ์ƒ๊ฐ๋‚œ ๊ฒƒ์€ delegate ๋ฐ–์— ์—†์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ๋„, ํ™”๋ฉด์ด ๋‹ค์‹œ ๊ทธ๋ ค์ง€์ง€๋Š” ์•Š์•˜๋‹ค.

 

๊ทธ๋Ÿฌ๋‹ค ์•Œ๊ฒŒ ๋œ ๊ฒƒ์ด didSet์ด๋‹ค.

 

 

 

 

 

 

didSet์ด๋ž€

๊ฐ„๋‹จํ•˜๊ฒŒ ์ด์•ผ๊ธฐํ•˜๋ฉด, ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์ด ์ƒˆ๋กœ ์„ค์ •๋œ ํ›„ ํ˜ธ์ถœ๋˜๋Š” ์ฝ”๋“œ์ด๋‹ค.

 

์ฆ‰, ๊ฐ’์ด ๋ฐ”๋€Œ๊ณ  ์ด์— ๋Œ€ํ•ด ํ™”๋ฉด์„ ๋‹ค์‹œ ๊ทธ๋ ค์ค˜์•ผ ํ•˜๋Š” ๋‚˜์—๊ฒŒ๋Š” ๊ผญ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด์—ˆ๋‹ค.

didSet์„ ์„ค์ •ํ•˜๋ฉด, ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์ด ๋ถ€๋ถ„์ด ํ˜ธ์ถœ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

 

 

 

 

 

์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋ƒ๋ฉด

var dateSend: Date = Date() {
    didSet {
        updateUI(for: dateSend)
    }
}

 

์ด๋ ‡๊ฒŒ, ํ”„๋กœํ† ์ฝœ๋กœ ๋ฐ›์€ dateSend์˜ ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ์‹คํ–‰๋ผ์•ผ ํ•˜๋Š” ํ™”๋ฉด์ด ๋ฐ”๋€Œ๋Š” updateUI ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์ค€๋‹ค.

 

์‚ฌ์‹ค ๋‚˜์ค‘์—๋Š” reloadํ•จ์ˆ˜๋ฅผ ์จ์„œ ๊ทธ๋ƒฅ collectionView์˜ cell์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ์‹์„ ํƒํ•˜๊ฒŒ ๋ผ์„œ ์ด didSet์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ์ด๋Ÿฐ ์นœ๊ตฌ๋„ ์žˆ๊ตฌ๋‚˜ ~~ ํ•˜๋Š” ์ค‘์š”ํ•œ ์‚ฌ์‹ค์„ ๋ฐฐ์šฐ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•