πŸ‘©πŸ»‍πŸ’»/Swift

25. ν”„λ‘œν† μ½œ - iOS ν”„λ‘œκ·Έλž˜λ°μ„ μœ„ν•œ μŠ€μœ„ν”„νŠΈ 기초

reujusong 2020. 6. 23. 14:41

- ν”„λ‘œν† μ½œ

  • ν”„λ‘œν† μ½œ(Protocol) μ€ νŠΉμ • 역할을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ λ©”μ„œλ“œ, ν”„λ‘œνΌν‹°, 기타 μš”κ΅¬μ‚¬ν•­ λ“±μ˜ 청사진을 μ •μ˜ν•œλ‹€.
  • ꡬ쑰체, 클래슀, μ—΄κ±°ν˜•μ€ ν”„λ‘œν† μ½œμ„ μ±„택(Adopted) ν•΄μ„œ νŠΉμ • κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ ν”„λ‘œν† μ½œμ˜ μš”κ΅¬μ‚¬ν•­μ„ μ‹€μ œλ‘œ κ΅¬ν˜„ν•  수 μžˆλ‹€.
  • μ–΄λ–€ ν”„λ‘œν† μ½œμ˜ μš”κ΅¬μ‚¬ν•­μ„ λͺ¨λ‘ λ”°λ₯΄λŠ” νƒ€μž…μ€ κ·Έ ν”„λ‘œν† μ½œμ„ μ€€μˆ˜ν•œλ‹€(Conform) κ³  ν‘œν˜„ν•œλ‹€.
  • νƒ€μž…μ—μ„œ ν”„λ‘œν† μ½œμ˜ μš”κ΅¬μ‚¬ν•­μ„ μΆ©μ‘±μ‹œν‚€λ €λ©΄ ν”„λ‘œν† μ½œμ΄ μ œμ‹œν•˜λŠ” μ²­μ‚¬μ§„μ˜ κΈ°λŠ₯을 λͺ¨λ‘ κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€. 즉, ν”„λ‘œν† μ½œμ€ κΈ°λŠ₯을 μ •μ˜ν•˜κ³  μ œμ‹œ ν•  뿐이지 슀슀둜 κΈ°λŠ₯을 κ΅¬ν˜„ν•˜μ§€λŠ” μ•ŠλŠ”λ‹€.

 

 - μ •μ˜

  • protocol ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ •μ˜ν•œλ‹€.
protocol ν”„λ‘œν† μ½œ 이름 { 
/* μ •μ˜λΆ€ */ 
]}

 

 - κ΅¬ν˜„

<<ν”„λ‘œνΌν‹° μš”κ΅¬>>

  • ν”„λ‘œνΌν‹° μš”κ΅¬λŠ” 항상 var ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.
  • get은 읽기만 κ°€λŠ₯해도 상관 μ—†λ‹€λŠ” 뜻이며 getκ³Ό set을 λͺ¨λ‘ λͺ…μ‹œν•˜λ©΄ 읽기 μ“°κΈ° λͺ¨λ‘ κ°€λŠ₯ν•œ ν”„λ‘œνΌν‹°μ—¬μ•Ό ν•œλ‹€.

 

 

 

 - ν”„λ‘œν† μ½œ 채택 및 μ€€μˆ˜

<<ν”„λ‘œν† μ½œ 채택>>

  • νƒ€μž…λͺ…: ν”„λ‘œν† μ½œ 이름

 

  • ν”„λ‘œνΌν‹° μš”κ΅¬λŠ” λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ 해석, κ΅¬ν˜„ ν•  수 μžˆλ‹€.

 

 - ν”„λ‘œν† μ½œ 상속

  • ν”„λ‘œν† μ½œμ€ ν•˜λ‚˜ μ΄μƒμ˜ ν”„λ‘œν† μ½œμ„ 상속받아 κΈ°μ‘΄ ν”„λ‘œν† μ½œμ˜ μš”κ΅¬μ‚¬ν•­λ³΄λ‹€ 더 λ§Žμ€ μš”κ΅¬μ‚¬ν•­μ„ μΆ”κ°€ν•  수 μžˆλ‹€.
  • ν”„λ‘œν† μ½œ 상속 문법은 클래슀의 상속 문법과 μœ μ‚¬ν•˜μ§€λ§Œ, ν”„λ‘œν† μ½œμ€ ν΄λž˜μŠ€μ™€ λ‹€λ₯΄κ²Œ 닀쀑상속이 κ°€λŠ₯ν•˜λ‹€.
 protocol ν”„λ‘œν† μ½œ 이름: λΆ€λͺ¨ ν”„λ‘œν† μ½œ 이름 λͺ©λ‘ {
  /* μ •μ˜λΆ€ */
  }

 

 

<<클래슀 상속과 ν”„λ‘œν† μ½œ>>

  • ν΄λž˜μŠ€μ—μ„œ 상속과 ν”„λ‘œν† μ½œ 채택을 λ™μ‹œμ— ν•˜λ €λ©΄ μƒμ†λ°›μœΌλ €λŠ” 클래슀λ₯Ό λ¨Όμ € λͺ…μ‹œν•˜κ³  κ·Έ 뒀에 채택할 ν”„λ‘œν† μ½œ λͺ©λ‘μ„ μž‘μ„±ν•œλ‹€.

 

 

- ν”„λ‘œν† μ½œ μ€€μˆ˜ 확인

  • is, as μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄μ„œ μΈμŠ€ν„΄μŠ€κ°€ νŠΉμ • ν”„λ‘œν† μ½œμ„ μ€€μˆ˜ν•˜λŠ”μ§€ 확인할 수 μžˆλ‹€.