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

15. 클래슀 vs ꡬ쑰체 / μ—΄κ±°ν˜• - iOS ν”„λ‘œκ·Έλž˜λ°μ„ μœ„ν•œ μŠ€μœ„ν”„νŠΈ 기초

reujusong 2020. 6. 19. 14:41
  • ν΄λž˜μŠ€λŠ” μ°Έμ‘° νƒ€μž…, μ—΄κ±°ν˜•κ³Ό κ΅¬μ‘°μ²΄λŠ” κ°’ νƒ€μž…μ΄λΌλŠ” 것이 κ°€μž₯ 큰 차이이닀.
  • ν΄λž˜μŠ€λŠ” 상속이 κ°€λŠ₯ν•˜μ§€λ§Œ, μ—΄κ±°ν˜•κ³Ό κ΅¬μ‘°μ²΄λŠ” 상속이 λΆˆκ°€λŠ₯ ν•˜λ‹€.

 

- κ°’ νƒ€μž…κ³Ό μ°Έμ‘° νƒ€μž… 비ꡐ

  • κ°’ νƒ€μž…(Value Type) : 데이터λ₯Ό 전달 ν•  λ•Œ 값을 λ³΅μ‚¬ν•˜μ—¬ μ „λ‹¬ν•œλ‹€.
  • μ°Έμ‘° νƒ€μž…(Reference Type) : 데이터λ₯Ό 전달 ν•  λ•Œ κ°’μ˜ λ©”λͺ¨λ¦¬ μœ„μΉ˜λ₯Ό μ „λ‹¬ν•œλ‹€.

 

 - κ°’ νƒ€μž…μ„ μ‚¬μš©ν•˜λŠ” 경우

  • μ—°κ΄€λœ λͺ‡λͺ‡μ˜ 값듀을 λͺ¨μ•„μ„œ ν•˜λ‚˜μ˜ 데이터 νƒ€μž…μœΌλ‘œ ν‘œν˜„ν•˜κ³  싢은 경우
  • λ‹€λ₯Έ 객체 λ˜λŠ” ν•¨μˆ˜ λ“±μœΌλ‘œ 전달될 λ•Œ μ°Έμ‘°κ°€ μ•„λ‹ˆλΌ 볡사(κ°’ 볡사) ν•  경우
  • μžμ‹ μ„ 상속할 ν•„μš”κ°€ μ—†κ±°λ‚˜, λ‹€λ₯Έ νƒ€μž…μ„ 상속 받을 ν•„μš”κ°€ μ—†λŠ” 경우

 

 - μŠ€μœ„ν”„νŠΈμ—μ„œμ˜ μ‚¬μš©

  • μŠ€μœ„ν”„νŠΈμ˜ κΈ°λ³Έ 데이터 νƒ€μž…μ€ λͺ¨λ‘ ꡬ쑰체둜 κ΅¬ν˜„ λ˜μ–΄μžˆλ‹€.
  • μŠ€μœ„μŠ€νŠΈλŠ” ꡬ쑰체와 μ—΄κ±°ν˜• μ‚¬μš©μ„ μ„ ν˜Έν•œλ‹€.
  • Apple ν”„λ ˆμž„μ›Œν¬λŠ” λŒ€λΆ€λΆ„ 클래슀λ₯Ό μ‚¬μš©ν•œλ‹€.
  • ꡬ쑰체/클래슀 선택과 μ‚¬μš©μ€ 개발자의 λͺ«μ΄λ‹€.