πŸ‘©πŸ»‍πŸ’» iOSun
article thumbnail
Published 2023. 12. 29. 22:27
[swift] λ©”μ†Œλ“œ Swift

ν•¨μˆ˜ vs λ©”μ†Œλ“œ λ­” 차이?

  • func ν‚€μ›Œλ“œ 뢙은 건 λ‹€ ν•¨μˆ˜μž…λ‹ˆλ‹€.
  • λ©”μ†Œλ“œλŠ” 클래슀, ꡬ쑰체, μ—΄κ±°ν˜•μ— μ†ν•œ ν•¨μˆ˜λ₯Ό λœ»ν•©λ‹ˆλ‹€.
  • (즉, ν•¨μˆ˜κ°€ 더 큰 κ°œλ…)

swiftμ—μ„œ λ©”μ†Œλ“œλŠ” 크게 λ‘κ°€μ§€λ‘œ λ‚˜λ‰©λ‹ˆλ‹€.

  1. μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ
  2. νƒ€μž… λ©”μ†Œλ“œ

λ‘˜μ˜ 큰 차이점은 μΈμŠ€ν„΄μŠ€λ₯Ό 생성해야 ν•˜λƒ μ•ˆν•˜λƒμž…λ‹ˆλ‹€.

 

 

μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ

class Counter {
    var count = 0

    func increment() {
        count += 1
    }
}

let counter = Counter() // μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ³ 
counter.increment() // λ©”μ†Œλ“œλ₯Ό μ‹€ν–‰ν•œλ‹€.
  • μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ³  ν•΄λ‹Ή μΈμŠ€ν„΄μŠ€μ—μ„œ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.

 

νƒ€μž… λ©”μ†Œλ“œ

class People {
    class func sayBye() { // 1. 클래슀 λ©”μ†Œλ“œ
        print("Bye")
    }
    
    static func sayHello() { // 2. static λ©”μ†Œλ“œ
        print("Hello")
    }
}

People.sayHello() // μΈμŠ€ν„΄μŠ€ 생성없이 νƒ€μž…μ„ 톡해 λ°”λ‘œ λ©”μ†Œλ“œ 호좜
People.sayBye()

  • ‘νƒ€μž…’ μžμ²΄μ—μ„œ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.
  • 즉, μΈμŠ€ν„΄μŠ€μ˜ 생성이 ν•„μš” μ—†μŠ΅λ‹ˆλ‹€.

 

νƒ€μž… λ©”μ†Œλ“œλŠ” 크게 2κ°€μ§€λ‘œ λ‚˜λ‰©λ‹ˆλ‹€.

  1. class λ©”μ†Œλ“œ
    → μ΄λ¦„μ²˜λŸΌ ν΄λž˜μŠ€μ—μ„œλ§Œ μ‚¬μš©ν•˜λŠ” λ©”μ†Œλ“œμž…λ‹ˆλ‹€. μ˜€λ²„λΌμ΄λ”©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€. (μžμ‹ ν΄λž˜μŠ€κ°€ μž¬μ •μ˜ κ°€λŠ₯)
  2. static λ©”μ†Œλ“œ
    → 클래슀, ꡬ쑰체, μ—΄κ±°ν˜•μ—μ„œ λͺ¨λ‘ μ‚¬μš©ν•  수 μžˆλŠ” λ©”μ†Œλ“œμž…λ‹ˆλ‹€. μ˜€λ²„λΌμ΄λ”©μ΄ λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.

 

μ–Έμ œ staticλ₯Ό μ“ΈκΉŒ?

extension UIColor {
    enum custom {
        static let main = UIColor(named: "main")
        static let error = UmIColor(named: "error")
        static let gray1 = UIColor(named: "gray1")
        static let gray2 = UIColor(named: "gray2")
        static let gray3 = UIColor(named: "gray3")
        static let gray4 = UIColor(named: "gray4")
		}
}

label.textColor = .custom.gray4
  • νŠΉμ • νƒ€μž… μžμ²΄μ™€ μ—°κ΄€λ˜λŠ” 상황에 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • 예λ₯Ό λ“€μ–΄ μ»€μŠ€ν…€ 컬러λ₯Ό μ •μ˜ν•  λ•Œ, μš°λ¦¬λŠ” ν”„λ‘œμ νŠΈ μ „μ²΄μ—μ„œ ν•΄λ‹Ή 컬러λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
  • 즉, 자주 λ³€ν•˜μ§€ μ•Šκ³  κ³΅ν†΅μœΌλ‘œ κ΄€λ¦¬λ˜λŠ” μžμ›λ“€μ„ static으둜 κ΄€λ¦¬ν•΄μ„œ μ‚¬μš©ν•©λ‹ˆλ‹€.

 

 

profile

πŸ‘©πŸ»‍πŸ’» iOSun

@iosun

ν¬μŠ€νŒ…μ΄ μ’‹μ•˜λ‹€λ©΄ "μ’‹μ•„μš”β€οΈ" λ˜λŠ” "κ΅¬λ…πŸ‘πŸ»" ν•΄μ£Όμ„Έμš”!

profile on loading

Loading...