Skip to content

Latest commit

ย 

History

History
46 lines (26 loc) ยท 2.39 KB

NotificationCenter.md

File metadata and controls

46 lines (26 loc) ยท 2.39 KB

Notification ๋™์ž‘๋ฐฉ์‹ ๋ฐ ํ™œ์šฉ๋ฐฉ์•ˆ

๋„์›€์„ ์ค€ ์ข‹์€ ๋ธ”๋กœ๊ทธ

Answer

  • ๋™์ž‘๋ฐฉ์‹
    "ํŠน์ • ๊ฐ์ฒด๊ฐ€ NotificationCenter์— ๋“ฑ๋ก๋œ Event๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด, NotificationCennter์— ๋“ฑ๋ก๋œ Observer๋“ค ์ค‘ ํ•ด๋‹น Event๋ฅผ ๋‹ด๋‹น ์ค‘์ธ Observer๊ฐ€ ๊ทธ Event์— ๋Œ€ํ•œ ํ–‰๋™์„ ์ทจํ•˜๋Š” ๊ฒƒ(#selector)์ด NotificationCenter๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค."

  • ํ™œ์šฉ๋ฐฉ์•ˆ
    "๋™์ž‘๋ฐฉ์‹์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ํŠน์ • Event์˜ ์‹คํ–‰์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํŠน์ • Event์˜ ์‹คํ–‰์— ๋”ฐ๋ผ ๋™์ž‘ํ•ด์•ผํ•˜๋Š” ๊ฒƒ ๋˜๋Š” ๋™์‹œ์ ์œผ๋กœ ์—ฌ๋Ÿฌ View์—์„œ ๋™์ž‘ํ•ด์•ผํ•˜๋Š” ๊ฒƒ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."


์—ฐ์Šต

POST๋ผ๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํŒŒ๋ž€์ƒ‰ ๋ฐ•์Šค๋Š” ์ฃผํ™ฉ์ƒ‰์œผ๋กœ, ์ฐจ์ฝœ์ƒ‰์€ ์ดˆ๋ก์ƒ‰์œผ๋กœ ๋ณ€ํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

image

POST

image

  • POST๋ผ๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด NotificationCenter์— PostButton์ด๋ผ๋Š” Event ๋“ฑ๋กํ•˜๊ณ  ์ด๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค ๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
  • object:๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด Event๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ๋•Œ ํŠน์ • ๊ฐ์ฒด๋ฅผ ๊ฐ™์ด ๋„˜๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋„˜๊ธฐ์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— nil๋กœ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Observer

image

image

  • ์œ„์˜ ๋‘ ๋ทฐ์—์„œ๋Š” PostButton์ด๋ผ๋Š” Event๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ด๋ฅผ ์บ์น˜ํ•˜๊ณ  ์–ด๋–ค ํ–‰๋™์„ ์ทจํ•˜๋Š” Observer๋ฅผ Addํ•ด์ค๋‹ˆ๋‹ค.

  • Observer๊ฐ€ ์ทจํ•˜๋Š” ํ–‰๋™์€ #selector์— ์ง€์ •ํ•ด์ค€ changeSecondColor,changeThirdColor์ž…๋‹ˆ๋‹ค.

    • changeSecondColor๋Š” ๋ฐ•์Šค์˜ ์ƒ‰์„ orange๋กœ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.
    • changeThirdColor๋Š” ๋ฐ•์Šค์˜ ์ƒ‰์„ green์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.

Result