728x90
스위프트의 메소드
Swift에서 구조체와 열거형에서 메소드를 정의할수 있다는 사실은, C와 Objective-C와는 가장큰 차이점입니다. Objective-C에서, 클래스는 메소드를 정의할수 있는 유일한 타입입니다. Swift에서는, 클래스, 구조체, 열거형에서 선택할수 있고, 생성한 타입에 대한 메소드 정의를 유연하게 할 수 있습니다.
인스턴스 메소드 - Instance Method
인스턴스 메소드(instance methods)는 특정 클래스, 구조체, 열거형의 인스턴스에서 속해있는 함수.
class Counter {
var count = 0
func increment() {
count += 1
}
func increment(by amount: Int) {
count += amount
}
func reset() {
count = 0
}
}
클래스의 인스턴스를 만들었을 때, 인스턴스 메소드로 프로퍼티처럼 .으로 사용할 수 있습니다.
타입 메소드 - Type Method
타입 메소드는 Objective-C 에서 클래스 메소드와 같은 느낌.
class SomeClass {
class func someTypeMethod() { //또는 static 선언.
// type method implementation goes here
}
}
SomeClass.someTypeMethod() //가능.
let some = SomeClass()
some.comeTypeMethod() //불가능. 인스턴스에서 사용 불가능.
타입 메소드는 인스턴스 메소드처럼, 점 문법(dot syntax)으로 호출됩니다. 하지만, 타입의 인스턴스가 아니라, 타입에서 타입 메소드를 호출합니다. 다음은 SomeClass 클래스에서 타입 메소드를 호출하는 방법입니다.
즉 위와 같은 예제에서 some이라는 인스턴스에서는 타입메소드를 호출하지 못합니다.
728x90
반응형
'iOS스터디 > Swift' 카테고리의 다른 글
[Swift] 외부 라이브러리 가져다 쓰는 방법 3가지 (0) | 2021.03.10 |
---|---|
[Swift] @escaping Closure (0) | 2021.03.09 |
[Swift] GCD Dispatch Queue (0) | 2021.03.03 |
[Swift] Equatable , Codable 프로토콜 (0) | 2021.02.05 |
[Swift] mutating 구조체 (0) | 2021.02.05 |