Metody klasowe (lub statyczne) w Objective-C zostały zrealizowane przy użyciu +
deklaracji.
@interface MyClass : NSObject
+ (void)aClassMethod;
- (void)anInstanceMethod;
@end
Jak można to osiągnąć w Swift?
Nazywane są one właściwościami typu i metodami typu, a używasz słów kluczowych class
lub 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
class
słowa kluczowego przed funkcją lub właściwością typu obliczonego.Nazywa się je właściwościami typu i metodami typu w języku Swift i używa się słowa kluczowego class.
Deklarowanie metody klasy lub metody Type w swift:
Dostęp do tej metody:
lub możesz szybko polecić metody
źródło
Dołącz do deklaracji,
class
jeśli jest to klasa, lubstatic
jeśli jest to struktura.źródło
func
tutaj słowa kluczowego?Swift 1.1 nie ma przechowywanych właściwości klas. Można to zaimplementować za pomocą właściwości klasy zamknięcia, która pobiera skojarzony obiekt powiązany z obiektem klasy. (Działa tylko w klasach pochodnych od NSObject).
źródło
Dołącz do deklaracji atrybut class lub static, jeśli jest to funkcja, lub static, jeśli jest to właściwość.
źródło