λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
iOS 🍎/Swift

Swift19 - μ΅μŠ€ν…μ…˜

by yongmin.Lee 2021. 2. 10.

Extensions

Extensions add new functionality to an existing class, structure, enumeration, or protocol type. 

Extensions in Swift can:

  • Add computed instance properties and computed type properties
  • Define instance methods and type methods
  • Provide new initializers
  • Define subscripts
  • Define and use new nested types
  • Make an existing type conform to a protocol

 

μ΅μŠ€ν…μ…˜μ΄λž€?

- μ΅μŠ€ν…μ…˜μ€ κ΅¬μ‘°μ²΄, 클래슀, μ—΄κ±°ν˜•, ν”„λ‘œν† μ½œ νƒ€μž…μ— μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ ν•  수 μžˆλŠ” κΈ°λŠ₯

- μ΅μŠ€ν…μ…˜μ€ νƒ€μž…μ— μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•  μˆ˜λŠ” μžˆμ§€λ§Œ, 기쑴에 μ‘΄μž¬ν•˜λŠ” κΈ°λŠ₯을 μž¬μ •μ˜ν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€.

- 기쑴에 μ‘΄μž¬ν•˜λŠ” νƒ€μž…μ΄ μΆ”κ°€μ μœΌλ‘œ λ‹€λ₯Έ ν”„λ‘œν† μ½œμ„ 채탯할 수 μžˆλ„λ‘ ν™•μž₯ν•  μˆ˜λ„ μžˆλ‹€

 

μ΅μŠ€ν…μ…˜ vs 상속

- 클래슀의 상속은 클래슀 νƒ€μž…μ—μ„œλ§Œ κ°€λŠ₯ν•˜μ§€λ§Œ μ΅μŠ€ν…μ…˜μ€ ꡬ쑰체, 클래슀, ν”„λ‘œν† μ½œ 등에 적용이 κ°€λŠ₯

- 클래슀의 상속은 νŠΉμ • νƒ€μž…μ„ λ¬Όλ €λ°›μ•„ ν•˜λ‚˜μ˜ μƒˆλ‘œμš΄ νƒ€μž…μ„ μ •μ˜ν•˜κ³  μΆ”κ°€ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” 수직 ν™•μž₯μ΄μ§€λ§Œ, μ΅μŠ€ν…μ…˜μ€ 기쑴의 νƒ€μž…μ— κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” μˆ˜ν‰ ν™•μž₯μž…λ‹ˆλ‹€.

- 상속을 λ°›μœΌλ©΄ κΈ°μ‘΄ κΈ°λŠ₯을 μž¬μ •μ˜ν•  수 μžˆμ§€λ§Œ, μ΅μŠ€ν…μ…˜μ€ μž¬μ •μ˜ν•  수 μ—†λ‹€

'iOS 🍎 > Swift' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

KVO, Key-Value Observing  (0) 2021.12.06
Swift - κ³ μ°¨ν•¨μˆ˜, Higher-order function  (0) 2021.02.10
Swift18 - ν”„λ‘œν† μ½œ  (0) 2021.02.10
Swift17 - assert/guard  (0) 2021.02.10
Swift16 - νƒ€μž…μΊμŠ€νŒ…  (0) 2021.02.10