Métodos de classe (ou estáticos) em Objective-C foram realizados usando +
em declarações.
@interface MyClass : NSObject
+ (void)aClassMethod;
- (void)anInstanceMethod;
@end
Como isso pode ser alcançado no Swift?
Eles são chamados de propriedades de tipo e métodos de tipo e você usa as palavras-chave class
ou 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
palavra - chave antes de uma função ou propriedade de tipo calculado.Eles são chamados de propriedades de tipo e métodos de tipo em Swift e você usa a palavra-chave class.
Declarando um método de classe ou método de tipo em swift:
Acessando esse método:
ou você pode consultar métodos rapidamente
fonte
Anexe a declaração com
class
se for uma classe ou comstatic
se for uma estrutura.fonte
func
palavra - chave aqui?O Swift 1.1 não tem propriedades de classe armazenadas. Você pode implementá-lo usando uma propriedade de classe de encerramento que busca um objeto associado vinculado ao objeto de classe. (Funciona apenas em classes derivadas de NSObject.)
fonte
Anexe a declaração com class ou static se for uma função ou com static se for uma propriedade.
fonte