Swift에서 클래스 레벨 함수를 어떻게 선언합니까?
문서에서 찾을 수없는 것 같고 기본 Swift에 있는지 궁금합니다. 예를 들어 다음 NSTimer
과 같이 클래스 수준 함수를 호출 할 수 있습니다 .
NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: "someSelector:", userInfo: "someData", repeats: true)
하지만 다음과 같이 호출 할 수 있도록 사용자 지정 개체로 수행하는 방법을 찾을 수없는 것 같습니다.
MyCustomObject.someClassLevelFunction("someArg")
이제 Objective-C와 Swift를 혼합 할 수 있다는 것을 알고 있으며 NSTimer
클래스 메서드가 상호 운용성에서 남은 부분 일 수 있습니다.
질문
Swift에 클래스 레벨 함수가 있습니까?
그렇다면 Swift에서 클래스 레벨 함수를 어떻게 정의합니까?
예, 다음과 같은 클래스 함수를 만들 수 있습니다.
class func someTypeMethod() {
//body
}
Swift에서는 Type 메서드라고합니다.
다음을 사용하여 클래스 내에서 Type 메서드를 정의 할 수 있습니다.
class Foo {
class func Bar() -> String {
return "Bar"
}
}
그런 다음 클래스 이름에서 액세스합니다.
Foo.Bar()
Swift 2.0에서는 static
하위 클래스가 메서드를 재정의하는 것을 방지 하는 키워드를 사용할 수 있습니다 . class
하위 클래스를 재정의 할 수 있습니다.
업데이트 : @Logan 덕분에
Xcode 6 베타 5 static
에서는 구조체에는 class
키워드를, 클래스 에는 키워드를 사용해야 합니다 .
class Foo {
class func Bar() -> String {
return "Bar"
}
}
struct Foo2 {
static func Bar2() -> String {
return "Bar2"
}
}
로부터 공식 스위프트 2.1 문서 :
메서드의 func 키워드 앞에 static 키워드를 작성하여 형식 메서드를 나타냅니다. 클래스는 또한 클래스 키워드를 사용하여 하위 클래스가 해당 메서드의 수퍼 클래스 구현을 재정의 할 수 있습니다.
구조체에서를 사용 static
하여 Type 메서드를 정의 해야합니다 . 클래스의 경우 메서드가 하위 클래스에 의해 재정의되도록 허용할지 여부에 따라 static
또는 class
키워드를 사용할 수 있습니다 .
클래스에서 메소드를 정의해야합니다.
class MyClass
{
class func myString() -> String
{
return "Welcome"
}
}
이제 클래스 이름을 사용하여 액세스 할 수 있습니다. 예 :
MyClass.myString()
"환영합니다"가됩니다.
참고 URL : https://stackoverflow.com/questions/24008011/how-do-i-declare-a-class-level-function-in-swift
'code' 카테고리의 다른 글
angularjs에서 선택 상자의 기본값을 어떻게 설정합니까? (0) | 2020.11.26 |
---|---|
프로세스가 도커 컨테이너 내에서 실행 중인지 확인하는 방법 (0) | 2020.11.26 |
툴바 이미지 중앙 (0) | 2020.11.26 |
Django : 로그인 페이지에서 로그인 한 사용자 리디렉션 (0) | 2020.11.26 |
Mac 애플리케이션의 NSUserDefaults 데이터는 어디에 저장됩니까? (0) | 2020.11.26 |