반응형
스위프트에서 클래스 메소드/프로퍼티를 만들려면 어떻게 해야 합니까?
Objective-C의 클래스(또는 정적) 방법은 다음을 사용하여 수행되었습니다.+
선언에 의하여
@interface MyClass : NSObject
+ (void)aClassMethod;
- (void)anInstanceMethod;
@end
스위프트에서 이것을 어떻게 달성할 수 있습니까?
이를 유형 속성 및 유형 메서드라고 하며 사용합니다.class
아니면static
키워드.
class Foo {
var name: String? // instance property
static var all = [Foo]() // static type property
class var comp: Int { // computed type property
return 42
}
class func alert() { // type method
print("There are \(all.count) foos")
}
}
Foo.alert() // There are 0 foos
let f = Foo()
Foo.all.append(f)
Foo.alert() // There are 1 foos
Swift에서 type property 및 type 메서드라고 하며 class 키워드를 사용합니다.
클래스 메서드 또는 Type 메서드를 신속하게 선언합니다.
class SomeClass
{
class func someTypeMethod()
{
// type method implementation goes here
}
}
이 메서드에 액세스하는 방법:
SomeClass.someTypeMethod()
또는 Methods를 신속하게 참조할 수 있습니다.
선언문 앞에 다음을 추가합니다.class
수업이든, 아니면 함께든.static
그것이 구조물이라면.
class MyClass : {
class func aClassMethod() { ... }
func anInstanceMethod() { ... }
}
Swift 1.1에는 저장된 클래스 속성이 없습니다.클래스 객체에 연결된 연관 객체를 가져오는 Closure 클래스 속성을 사용하여 구현할 수 있습니다. (NSObject에서 파생된 클래스에서만 작동합니다.)
private var fooPropertyKey: Int = 0 // value is unimportant; we use var's address
class YourClass: SomeSubclassOfNSObject {
class var foo: FooType? { // Swift 1.1 doesn't have stored class properties; change when supported
get {
return objc_getAssociatedObject(self, &fooPropertyKey) as FooType?
}
set {
objc_setAssociatedObject(self, &fooPropertyKey, newValue, objc_AssociationPolicy(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
}
}
....
}
함수이면 클래스 또는 정적으로, 속성이면 정적으로 선언문 앞에 붙입니다.
class MyClass {
class func aClassMethod() { ... }
static func anInstanceMethod() { ... }
static var myArray : [String] = []
}
언급URL : https://stackoverflow.com/questions/24087936/how-do-i-make-class-methods-properties-in-swift
반응형
'programing' 카테고리의 다른 글
MySQL에서 데이터베이스 이름 와일드카드로 GRANT? (0) | 2023.10.08 |
---|---|
RouteParam을 사용하는 컨트롤러 각도 테스트 (0) | 2023.10.08 |
네이티브 함수 'ISNULL'에 대한 호출에서 매개 변수 개수가 잘못됨 (0) | 2023.10.08 |
파일을 재귀적으로 .gitignore하는 방법 (0) | 2023.10.08 |
우커머스:주문 시 텍스트 변경 버튼 (0) | 2023.10.08 |