๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽ iOS/iOS

[iOS ๋ฉด์ ‘์งˆ๋ฌธ] Delegate์™€ Protocol

by Fomagran ๐Ÿ’ป 2020. 11. 16.
728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!!

 

์ด๋ฒˆ์— ์•Œ์•„๋ณผ ์ฃผ์ œ๋Š” ๋ฐ”๋กœ Delegate์™€ Protocol์ž…๋‹ˆ๋‹ค!

 

Xcode์— Project๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด AppDelegate,SceneDelegate,UITableViewDelegate....๋“ฑ ๋งŽ์€ ๋”œ๋ฆฌ๊ฒŒ์ดํŠธ๋ฅผ

 

๋ณด์…จ์„๊ฑฐ์—์š”. ์ €๋„ ์ด๊ฒŒ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ๋Œ€์ถฉ์€ ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๋ง‰์ƒ ์„ค๋ช…์„ ํ•˜๋ คํ•˜๋‹ˆ ๋ง์ด ์•ˆ๋‚˜์˜ค๋”๋ผ๊ตฌ์š”

 

๊ทธ๋ž˜์„œ ์•Œ์•„๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณผ๊ฒŒ์šฉ~

 

 

Protocol


๋จผ์ € ๋”œ๋ฆฌ๊ฒŒ์ดํŠธ๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„  Protocol์˜ ๊ฐœ๋…์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ด์š”.

 

์Šค์œ„ํ”„ํŠธ ๋ฌธ์„œ์—” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฐ„๋‹จํ•˜๊ฒŒ ์˜ˆ์‹œ๋กœ ์„ค๋ช…๋“œ๋ฆด๊ฒŒ์š”

 

์ถ•๊ตฌ์„ ์ˆ˜ 3๋ช…์ด ์žˆ๋‹ค๊ณ  ํ• ๊ฒŒ์š”. ๊ทธ๋ ‡๋‹ค๋ฉด ํ”„๋กœํ† ์ฝœ์€ ๊ณต๊ฒฉ์ˆ˜,์ˆ˜๋น„์ˆ˜,๊ณจํ‚คํผ๊ฐ€ ๋ ๊ฑฐ์—์š”

 

๊ณต๊ฒฉ์ˆ˜๋Š” ์ŠˆํŒ…,๋“œ๋ฆฌ๋ธ”๋ง,์‹ค์ˆ˜

 

์ˆ˜๋น„์ˆ˜๋Š” ๋ง‰๊ธฐ,ํƒœํด,๋†“์นจ

 

๊ณจํ‚คํผ๋Š” ํŽ€์นญ,์ง€ํ‚ค๊ธฐ,์žก๊ธฐ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ •์˜๋งŒ ๋‚ด๋ ค์ฃผ๋Š”๊ฒ๋‹ˆ๋‹ค. 

 

Delegate


๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ œ Delegate๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?

 

Delegate๋Š” ์‚ฌ์ „์ƒ ์˜๋ฏธ๋กœ "์œ„์ž„ํ•˜๋‹ค"๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

 

์‚ฌ์ „์˜ ๋œป ๊ทธ๋Œ€๋กœ ์›ํ•˜๋Š” class,enum,struct์— ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•˜์—ฌ ์œ„์ž„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๊ฒƒ ๋˜ํ•œ ์˜ˆ์‹œ๋กœ ์•Œ์•„๋ณผ๊ฒŒ์š”.

 

์•„๊นŒ Protocol์˜ 3๊ฐ€์ง€ ๋งŒ๋“ค์–ด์คฌ์ฃ ? ๊ณต๊ฒฉ์ˆ˜,์ˆ˜๋น„์ˆ˜,๊ณจํ‚คํผ

 

์ด๊ฒƒ๋“ค์„ ์ด์ œ SoccerPlayer1,SoccerPlayer2,SoccerPlayer3๋ผ๋Š” class์— ์ฑ„ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค!!

 

์ž SoccerPlayer1์—” Striker๋ผ๋Š” ๊ณต๊ฒฉ์ˆ˜๋ผ๊ณ  ์ฑ„ํƒํ•ด์„œ ์•„๊นŒ ์ •์˜ ๋‚ด๋ ค์ค€ ์ŠˆํŒ…,๋“œ๋ฆฌ๋ธ”,์‹ค์ˆ˜๋ฅผ ์œ„์ž„ํ•ด์ค์‹œ๋‹ค.

 

๋งˆ์น˜ "๋„Œ ๊ณต๊ฒฉ์ˆ˜๋‹ˆ๊น ์ŠˆํŒ…,๋“œ๋ฆฌ๋ธ”,์‹ค์ˆ˜๋ฅผ ํ•  ์ˆ˜ ์žˆ์–ด"๋ผ๊ณ  ๋งํ•ด์ฃผ๊ณ  ์—ฌ๊ธฐ์— ์ด์ œ ๋ฌด์—‡์„ ํ• ์ง€ ๊ตฌํ˜„์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์ฃ !!

SoccePlayer2์—” Defender๋ฅผ ์ฑ„ํƒํ•ด์ฃผ๊ณ  ๊ณต๊ฒฉ์ˆ˜์™€ ๊ฐ™์ด ๋„Œ ์ˆ˜๋น„์ˆ˜๋‹ˆ๊น ์ ์„ ๋ง‰๊ณ , ํƒœํด์„ ๊ฑธ๊ณ , ์ ์„ ๋†“์ณค์„ ๋•Œ ๋ฌด์—‡์ธ๊ฐ€๋ฅผ

 

๊ตฌํ˜„ํ•ด!! ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด์ฃ 

๊ณจํ‚คํผ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์—์š”. GoalKeeper ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•ด์ฃผ๊ณ  ์ •์˜๋˜์–ด์žˆ๋˜ ๋ฉ”์†Œ๋“œ๋“ค์„ ์œ„์ž„ํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด์ฃ !!

 

์ด๋ ‡๊ฒŒ ์˜ค๋Š˜์€ Protocol์„ ํ†ตํ•˜์—ฌ Delgate๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜๋Š” ๊ฒƒ์ธ์ง€ ์ถ•๊ตฌ์„ ์ˆ˜๋ฅผ ์˜ˆ์‹œ๋กœ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š”.

 

์ดํ•ด๊ฐ€ ์ž˜๋˜์…จ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š” ใ…  

 

ํ˜น์‹œ๋ผ๋„ ์ œ๊ฐ€ ์ž˜๋ชป ์„ค๋ช…ํ•œ๊ฒŒ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์„ธ์š”!!

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€