tipos metodo inicializadores funciones for datos swift

inicializadores - metodo swift



¿Cómo hago los métodos/propiedades de clase en Swift? (5)

Los métodos de clase (o estáticos) en Objective-C se lograron usando + en declaraciones.

@interface MyClass : NSObject + (void)aClassMethod; - (void)anInstanceMethod; @end

¿Cómo se puede lograr esto en Swift?


Anote la declaración con class si es una clase, o con static si es una estructura.

class MyClass : { class func aClassMethod() { ... } func anInstanceMethod() { ... } }


Anote la declaración con clase o estática si es una función, o con estática si es una propiedad.

class MyClass { class func aClassMethod() { ... } static func anInstanceMethod() { ... } static var myArray : [String] = [] }


Se llaman propiedades de tipo y métodos de tipo y utiliza la class o palabras clave 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


Se llaman propiedades de tipo y métodos de tipo en Swift y utiliza la palabra clave class.
Declarar un método de clase o un método de tipo en swift:

class SomeClass { class func someTypeMethod() { // type method implementation goes here } }

Accediendo a ese método:

SomeClass.someTypeMethod()

o puede consultar los Métodos en forma rápida


Swift 1.1 no tiene propiedades de clase almacenadas. Puede implementarlo utilizando una propiedad de clase de cierre que recupera un objeto asociado vinculado al objeto de clase. (Solo funciona en clases derivadas de 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)) } } .... }