paint-brush
Swift init(), Mä kuti ukat Taqi kunaukata@kfamyn
Machaq sarnaqäwi

Swift init(), Mä kuti ukat Taqi kuna

ukata Kiryl Famin19m2025/03/21
Read on Terminal Reader

Sinti jaya pachanakawa; Uñxatt’añataki

Aka qillqatanx taqi kunatix Swift qalltayirinakatakix wakiski ukanak uñt’ayi: miembros, designados, conveniencia, conveniencia sobrepasación; wakisiri apnaqaña casos ukanaka; jan parámetros ukampi UIView() qalltawi; compilador ukan yanapt’awipa; failable init, enum init ukat juk’ampinaka.
featured image - Swift init(), Mä kuti ukat Taqi kuna
Kiryl Famin HackerNoon profile picture
0-item
1-item

Qallta

Kamisaki! Nayan sutijax Kiryl Famin satawa, ukat nayax iOS ukan irnaqiritwa.


Jichhürunakanxa, Swift ukan inicializadores ukham mä sanu tema ukar sum uñakipañ munta. Ukham jan chʼamäkaspas ukhamäkchisa, awisajj uka toqet jan sum amuytʼasajja, jan waltʼayir pantjasiwinakaruw puriyi, uka pantjasiwinakjja, jan sum amuytʼasisaw jankʼak askichañ muni.


Aka qillqatanx taqi kunatix qalltawimp chikt’atäki ukanak uñakipt’añäni, ukanakax akanakawa:


  • Kunjamas estructura ukan miembron inicializador ukax mä costumbre ukar uñt’ayañkamax katxaruñapa

  • Kunatsa jan sapa kutix clasenakan mä inicializador qillqañax wakiskiti

  • Kunatsa super.init jawsañax janiw sapa kutix mä designado inicializador ukanx wakiskiti

  • Kunatsa mä subclase ukan taqpach yapunakapax janïr super.init ukar jawsañkamax phuqhantatäñapa

  • Kunjamas taqi awki tayka qalltayirinakarux jisk’a ch’amanchawinakampi subclases ukan mantañax

  • Kunapachatixa chiqapa mä required ukaxa wakisi

  • Kunatsa UIView.init() ukax sapa kutiw jan parámetros ukanakamp jawsatäna, ukampis init(frame:) ukat init(coder:) ukax chhaqtayatawa


...ukat juk’ampinaka. Ukampis mä jukʼat mä jukʼa parltʼañäni.

Tabla de Contenido ukax mä juk’a pachanakanwa

Ukax mä juk’a pachanakanwa

Estructuras ukanaka

  • Miembronakaparjama qalltiri
  • Opcionales ukanaka
  • var vs ukax let
  • Mä miembron inicializador ukar katxaruña

Yatiqañ utanaka

  • Uñt’ayata qalltawi
  • Conveniencia qalltañataki
  • Superclase ukan conveniencia inicializador ukar katxaruña
  • Jakhuwi jisk’achaña
  • Compilador ukan yanapt’awipa
  • required qalltiri: genéricos, protocolos, Self() , final
  • UIView() ukax mä parámetros ukaniwa

Honorable mencionanaka

  • Ukax mä init ukhamawa
  • Enums ukat juk’ampinaka

Juk'achata

Uka tuqit wakiskir enlaces ukanaka

Ukax mä juk’a pachanakanwa

Apple ukan guia The Swift Programming Language (6) (ukax, chiqans, muspharkañ uñt’ayatawa inicializadores ukanakataki) akham siwa:


Initialización ukax mä instancia de clase, estructura jan ukax enumeración ukanak apnaqañatakiw wakicht’i. Aka lurawixa sapa imatäki uka yänakatakixa qallta chanipa utt’ayañawa ukatxa yaqha wakicht’awi jan ukaxa qalltawi lurañawa kunatixa wakisi janïra machaq uñacht’awixa apnaqañataki wakicht’atäkipana.


Aka qalltañ lurawix phuqhachatawa qalltawinak uñt’ayasa , ukax kunayman thakhinakjamawa, ukax mä machaq instancia lurañatakiw jawsatäspa, mä kasta kasta. Objetivo-C qalltayirinakat sipansa, Swift qalltirinakax janiw mä chimpu kutt’ayapkiti. Jupanakan nayrïr lurawipax machaq instancias de un tipo ukanakax chiqapar qalltañapatakiw janïr nayrïr kuti apnaqañkama.


Suma, nayax amuyta janiw kunas akan yapxatañax wakiskiti.

Estructuras ukanaka

Qalltañatakix estructura inicializadores ukanakat aruskipt’añäni. Ukax wali ch’amawa kunatix janiw herenciax utjkiti, ukampis yaqhip kamachinakax utjaskakiwa, ukanak yatiñax wakisiwa.

Miembronakaparjama qalltiri

Mä sanu lurawi qillqt’añäni:

 struct BankAccount { let amount: Double let isBlocked: Bool } let bankAccount = BankAccount(amount: 735, isBlocked: Bool)


Uñakipt’añatakix mä qalltayirir jan qhan uñt’ayasax estructura ukar qalltañ atipxtanxa. Ukax lurasiwa kunatix estructuras ukanakax mä miembro inicializador ukar katuqapxi, ukax compilador ukan luratawa. Ukax estructuras ukanakatakik irnaqaski .


Refactor → Generar inicializador de miembros ukar ajllisaw kunjams uñstaski uk uñjasma:


Xcode ukan miembron inicializador ukar uñstayaña


 init(amount: Double, isBlocked: Bool) { self.amount = amount self.isBlocked = isBlocked }


Firma tuqitxa, taqi parámetros ukanakatakix valores ukanakax jan churañax mä compilación pantjasiw utjayaspa uk uñjañax jasakiwa:

 let bankAccount = BankAccount(amount: 735) // ❌ Missing argument for parameter 'isBlocked' in call


Ukampirus, wakiskir argumientunak jisk’achañ munsta ukhax mä costumbre inicializador ukar uñt’ayasma:

 init(amount: Double, isBlocked: Bool = false) { self.amount = amount isBlocked = isBlocked } let bankAccount = BankAccount(amount: 735) // ✅


Qhanacht’añatakix isBlocked ukax janiw phuqhantatäkiti, ukax mä pantjasiw compilación ukaruw purini kunatix taqi propiedades de estructura ukax mä inicializador ukan phuqhantatäñapawa .

Opcionales, var vs let

Mä yapux janiw qhananchañax wakiskiti, ukax mä variable opcional ( ? ) ( var ) ukhamawa. Ukhamächi ukhaxa, yapux nil ukar uñtatawa :

 struct BankAccount { let amount: Double var isBlocked: Bool? init(amount: Double) { self.amount = amount } } let bankAccount = BankAccount(amount: 735) // ✅


Ukampirus, aka tuqinx memberwise initializer uka apnaqañ yant’añäni ukhax mä compilación pantjasiw jikxatañäni:

 let bankAccount = BankAccount( amount: 735, isBlocked: false ) // ❌ Extra argument 'isBlocked' in call

Mä miembron inicializador ukar katxaruña

Ukax lurasi kunatix mä inicializador costumbre ukar uñt’ayañax miembros inicializadores ukarux apsuwayiwa. Wali qhananchañax wakisiwa, ukampis janiw automáticamente ukax utjkaniti.


Ukampirus, mä jisk’a k’ariw utji, miembron qalltayirip katxaruñataki: mä extension ukan qalltayirir uñt’ayaña .

 struct BankAccount { let amount: Double var isBlocked: Bool? } extension BankAccount { init(amount: Double) { self.amount = amount } } let barclaysBankAccount = BankAccount(amount: 735) // ✅ let revolutBankAccount = BankAccount(amount: 812, isBlocked: false) // ✅ print(barclaysBankAccount.isBlocked) // nil print(barclaysBankAccount.isBlocked) // false


Suma qhanañcht’awi estructuras ukanakataki

  • Taqi yapunakax mä inicializador ukan phuqhantatañapawa
  • Opcional var yapunakax nil ukar uñtatawa
  • Estructuras ukax mä inicializador miembro ukan inakiw katuqapxi
  • Miembron qalltayiripax chhaqtawayxiwa, mä costumbre qalltayirix yatiyatawa
  • Estructura ukan miembron inicializador ukar katxaruñatakix, mä extension ukan mä costumbre ukar uñt’ayaña

Yatiqañ utanaka

Uñt’ayata qalltawi

Mä clase ukan nayrïr qalltayiripax uñt'at qalltawiwa . Ukajj pä amtaruw yanaptʼi:

  1. Taqi yapunakaxa phuqhantatäñapataki uñjaña
  2. Uka clase ukaxa herencia ukhamawa, ukaxa superclase inicializador satawa
 class Animal { var name: String init(name: String) { self.name = name } } class Dog: Animal { var breed: String var name: String init(breed: String, name: String) { self.breed = breed super.init(name: name) } }


Taqi yapunakax janïr super.init ukar jawskasax phuqhantatäñapawa . Ukax kunatix superclase inicializador ukax subclase ukan jan walt’ayat thakhinak jawsaspawa, ukax jan pobladas subclase propiedades ukar mantaspawa.

 class Animal { var age: Int init(age: Int) { self.age = age getInfo() } func getInfo() { print("Age: ", age) } } class Dog: Animal { var breed: String init(breed: String, age: Int) { self.breed = breed // imagine we haven't done this super.init(age: age) } override func getInfo() { print("Age: ", age, ", breed: ", breed) } }


Ukhamat, jan self.breed = breed ukar uñt’ayasksna ukhax mä pantjasiw apnaqañ pachan jikxatassna kunatix Animal inicializador ukax Dog clase ukanx getInfo() uka lurawiruw jawsaspa. Aka lurawix breed propiedad ukar mantañ yant’i, ukax janiw jichhakamax jaqichatäkaspati.


Estructuras ukanakat sipansa, clases ukanakax janiw mä inicializador implícito miembro ukarjam katuqapkiti. Jan qalltatäki uka propiedades ukanakax utjki ukhaxa, mä compilación pantjasiwiw utji:

 class Animal { // ❌ Class 'Animal' has no initializers var age: Int }
 class Animal { // ✅ var age: Int = 0 }
 class Animal { // ✅ var age: Int? }
 class Animal { } // ✅

Conveniencia qalltañataki

Yatichäwinakax mä conveniencia inicializador ukanirakiwa . Janiw designados inicializadores ukar uñtaskiti, janiw mä objeto zero ukhat lurapkiti jan ukasti yaqha inicializadores ukan lógica ukar wasitat apnaqasaw qalltañ lurawix simplifica.

 class Rectangle { var width: Double var height: Double init(width: Double, height: Double) { self.width = width self.height = height } convenience init(side: Double) { self.init(width: side, height: side) // uses a designated initializer of self } }


Conveniencia inicializadores ukanakax designados inicializadores jan ukax yaqha conveniencia inicializadores ukanakaruw jawsapxaspa. Qhiparusti, mä designado inicializador ukax sapa kutiw jawsatäni.

Conveniencia, designada ukatxa superclase ukanaka qalltirinaka


Conveniencia qalltirinakax sapa kutiw horizontal (self.init) ukar sarapxi, ukatx designados inicializadores ukanakax verticales (super.init) ukar sarapxi.

Superclass ukan Conveniencia Inicializador ukar katxaruña

Mä subclase ukax machaq propiedades ukanakat yatiyas ukhax taqi superclase ukan conveniencia inicializadores ukanakarux janiw mantañapakiti.

 class Animal { var age: Int var name: String init(age: Int, name: String) { self.age = age self.name = name } convenience init(age: Int) { self.init(age: age, name: "Default") } convenience init(name: String) { self.init(age: 0, name: name) } } class Dog: Animal { var breed: String init(age: Int, name: String, breed: String) { self.breed = breed super.init(age: age, name: name) } } let dog = Dog(age: 3) // ❌ Missing arguments for parameters 'breed', 'name' in call 


Jichha jerarquía inicial ukax mä init ukakiw qhananchata


Ukax askichasispawa taqi superclase ukan uñt’ayat qalltayirinakar jan yäqasa .

 class Dog: Animal { // ... override init(age: Int, name: String) { self.breed = "Mixed" super.init(age: age, name: name) } } let dog = Dog(age: 3) // ✅ 


Jichhax conveniencia inicializadores ukanakax wasitat jikxatasiwayi, ukampis pä initializadores ukanakax qhananchatawa


Jasakiw uñjañaxa, ukhamatwa, mä conveniencia inicializador jutir subclase ukan apnaqañatakix inicializadores ukarux chhaqtayañaw wakisi.

 class GuideDog: Dog { var isTrained: Bool override init(age: Int, name: String) { self.isTrained = false super.init(age: age, name: name) } override init(age: Int, name: String, breed: String) { self.isTrained = false super.init(age: age, name: name, breed: breed) } init(age: Int, name: String, breed: String, isTrained: Bool) { self.isTrained = isTrained super.init(age: age, name: name, breed: breed) } } let dog = GuideDog(age: 3) // ✅ 


Conveniencia qalltawinakax wasitat jikxatasiwayi, ukampis GuideDog ukax kimsa qalltawinak qhan uñacht’ayi


Jakhuwi jisk’achaña

Ukampirus ukax mä conveniencia override initializer ukampiw jan lurasispa .

 class Dog: Animal { var breed: String convenience override init(age: Int, name: String) { self.init(age: age, name: name, breed: "Mixed") // self, not super } init(age: Int, name: String, breed: String) { self.breed = breed super.init(age: age, name: name) } } class GuideDog: Dog { var isTrained: Bool // override init(age: Int, name: String) { // self.isTrained = false // // super.init(age: age, name: name, breed: "Mixed") // } convenience override init(age: Int, name: String, breed: String) { self.init(age: age, name: name, breed: breed, isTrained: false) // self, not super } init(age: Int, name: String, breed: String, isTrained: Bool) { self.isTrained = isTrained super.init(age: age, name: name, breed: breed) } } let dog = GuideDog(age: 3) // ✅ 


Pä Animal ukan conveniencia qalltawinakapax wasitat jikxatasiwayi, Dog ukan conenience init(edad:, suti:) ukax wasitat jikxatasi ukatx pä GuideDog ukan qalltawipakiw qhan uñacht’ayata


Jichhax sapa subclase ukanx 2 explícitamente especificados inicializadores ukanakakiw utjistu.

Uñakipt’aña kunjams conveniencia override initializers ukax self designado init sasin sutichapxi super.init uksat sipansa.

Aka k’arix Swift in Depth 5 t’aqapanx Tjeerd in 't Veen ukan 5 t'aqapanw sum qhanañchasi, uka librox nayatakix wali askiwa.

Chika taypinkiri suma qhananchawi

  • uñt’at qalltayirix taqi yänakax phuqhantatañapatakiw uñji ukatx super.init() ukaruw jawsaraki.
  • conveniencia inicializador ukax qalltañ simplifica, mä designado inicializador ukar jawsasa.
  • conveniencia inicializador ukax subclases ukanakatakix janiw utjxiti, jupanakax machaq propiedades ukanakat yatiyapxi ukhaxa.
  • Mä superclase ukan conveniencia inicializador ukar kutt’ayañatakix , taqi uñt’at inicializadores ukanakax chhaqtayatäñapawa.
  • Jakhuwi jisk’achañatakixa, mä conveniencia uñakipaña qalltayirimpiwa apnaqasispa.

Compilador ukan yanapt’awipa

Jiwasax nayraqat arsuwaytanwa, mä subclase ukax machaq parámetros ukar jan uñt’ayañapatakix, ukax automáticamente taqi superclase ukan qalltayirinakap herencia ukham katuqaraki.

 class Base { let value: Int init() { value = 0 } init(value: Int) { self.value = value } } class Subclass: Base { } let subclass = Subclass() // ✅ let subclass = Subclass(value: 3) // ✅


Ukampirus yaqha wakiskir amtawix utjarakiwa: superclase ukax mä inicializador designado ukakiw utji ukatx jan parámetros ( init() jan argumentos ukampi), ukhamax subclase ukan qhananchata inicializadores ukax janiw super.init() ukar jawsañax wakiskiti. Ukhamächi ukhaxa, Swift compilador ukax automáticamente jawsañx super.init() utjki ukaruw jan arsuwinakampix uñt’ayi.

 class Base { init() { } } class Subclass: Base { let secondValue: Int init(secondValue: Int) { self.secondValue = secondValue // ✅ without explicit super.init() } }


Uka chimpux apthapitawa kunatix super.init() ukax implícitamente jawsatawa. Ukax yaqhip uñacht’äwinakatakix wali wakiskiriwa.

Mayita

required qalltayirix taqi chiqanw apnaqasi, kawkhantix mä subclase ukax pachpa qalltawimp chikaw base clase ukampix utjañapa. Ukhamaraki super.init() ukaruw jawsañapa. Aka amparamp qillqt’at uñacht’awinakax kawkhantix mä required qalltawix wakisi.

Genéricos ukanaka

Mä genérico tipo ukan init jawsañax mä required init uñt'ayasakiw lurasispa.

 class Base { } class Subclass: Base { } struct Factory<T: Base> { func initInstance() -> T { // ❌ Constructing an object of class T() // type 'T' with a metatype value } // must use a 'required' initializer }


Aka codigox janiw compilar kunatix Factory ukax janiw kuns yatiskiti subclases de Base ukanakat. Ukhampachasa aka particular tuqinxa, Subclass ukax mä init() ukampiw jan parámetros ukampix utji, amuyt’añäni, machaq yapu uñt’ayaspa ukhaxa:

 class Subclass: Base { let value: Int init(value: Int) { self.value = value } }


Aka chiqanx, janiw ch’usat init ukanïxiti, ukhamax kunjamtix required ukhamarjamaw yatiyatäñapa .

 class Base { required init() { } } class Subclass: Base { } struct Factory<T: Base> { static func initInstance() -> T { // ✅ T() } } let subclass = Factory<Subclass>.initInstance()


Qhanacht’añatakix janis Subclass ukan required init uñt’ayasktan ukhas compilador ukax jiwasatakiw uñstayi. Uka tuqitxa Compilador ukan yanapt’awipanw aruskipt’asiwayi. Uka required init ukax automáticamente herencia ukat super.init() satawa.

 class Subclass: Base { required init() { super.init() } }

Protocolos ukanaka

Taqi inicializadores ukanakaxa protocolos ukanakana qhananchata ukanakaxa required :

 protocol Initable { init() } class InitableObject: Initable { init() { // ❌ Initializer requirement 'init()' can only // be satisfied by a 'required' initializer } // in non-final class 'InitableObject' }


Maysatxa, akax wakisiwa ukhamat compilador ukax subclase ukax protocolo inicializador ukar phuqhañapataki. Kunjamtï yatktanxa, janiw sapa kutix ukhamäkiti —init init janiw required , subclase ukax janiw obligat ukhamäkiti ukat inas jupan qalltayirip qhanañchchispa.

 class IntValue: InitableObject { let value: Int init(value: Int) { self.value = value } } let InitableType: Initable.Type = IntValue.self let initable: Initable = InitableType.init()


Chiqans, aka chimpux janiw compilatäkaniti kunatix Base.init() ukax janiw required .

 class InitableObject: Initable { required init() { } // ✅ } class IntValue: InitableObject { let value: Int required init() { self.value = 0 } init(value: Int) { self.value = value } }

Ukaña()

Ukham uñtasitaw Self() qalltayirir jawsañax métodos estáticos ukanx utji.

 class Base { let value: Int init(value: Int) { self.value = value } static func instantiate() -> Self { Self(value: 3) // ❌ Constructing an object of class type 'Self' } // with a metatype value must use a 'required' initializer }


Kunjamtix nayrax lurapxirïktxa, uka jan walt’awix herencia tuqitwa:

 class Subclass: BaseClass { let anotherValue: Int init(anotherValue: Int) { self.anotherValue = anotherValue } } let subclass = Subclass.instantiate() // ❌
 class BaseClass { let value: Int required init(value: Int) { // ✅ self.value = value } static func instantiate() -> Self { Self(value: 3) } }

Ukax required : final

Kunjamatixa required amtawixa mä qalltayiriru phuqhañapatakixa ch’amanchañawa jisk’a clasenakanxa, naturalmente, herencia jark’añaxa final aru apnaqasa mä qalltayiriru chimpuntañaxa wakisi kunjamatixa required ukhama .

 protocol Initable { init() } final class InitableObject: Initable { } // ✅
 protocol ValueInitable { init(value: Int) } final class ValueInitableObject: ValueInitable { init(value: Int) { } // ✅ }

Chika taypinkiri suma qhananchawi

  • Mä subclase ukax machaq parámetros ukar jan uñt’ayañapatakix, ukax automáticamente taqi inicializadores ukanakaruw superclase ukanx herencia ukham katuqaraki.
  • Superclase ukax init() ukampikiwa jan parámetros ukampi, ukax subclase inicializadores ukanx automáticamente jawsatawa.
  • required qalltayirix wakisiwa, subclases ukan utjatap garantizañataki, genéricos, protocolos ukat Self() ukanakan apnaqañataki.

UIView () ukat juk’ampinaka.

Mä jisk’a arsuwi UIView() qalltayiri jan parámetros ukampi, ukax janiw documentación ukan jikxataskiti jan ukasti misterioso taqi chiqanw apnaqasi.


Ukax kunatix UIView NSObject ukan herenciapawa , ukax mä init() jan parámetros ukaniwa. Ukhamarusa , aka qalltawixa janiwa qhananchatakiti UIView interfaz ukanxa, ukampirusa wali uñt’atawa:

 @available(iOS 2.0, *) @MainActor open class UIView : UIResponder, NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem, UITraitEnvironment, UICoordinateSpace, UIFocusItem, UIFocusItemContainer, CALayerDelegate { open class var layerClass: AnyClass { get } public init(frame: CGRect) public init?(coder: NSCoder) open var isUserInteractionEnabled: Bool // no init()


Ukampirus, capucha manqhanxa, aka qalltirix init(frame:) ukaruw jawsi kunawsatix código ukan qalltaski ukhax jan ukax init(coder:) ukaruw jawsi kunawsatix Interface Builder tuqi qalltaski ukhaxa. Ukax lurasi kunatix UIView ukax NSObject.init() ukan phuqhawip churaraki, ukax chiqanchasispawa kunatix method_getImplementation ukax NSObject.init() ukat UIView.init() ukatakix kunayman direccionanak kutt’ayaraki.

Honorable mencionanaka

Ukax mä init ukhamawa

Mä init failable ukax mä opcional ukar kutt’ayañakiw

 final class Failable { let positiveValue: Int init?(value: Int) { guard value > 0 else { return nil } positiveValue = value } }

Enum

Enums ukax mä raw valoraniw mä libre init?(rawValue:)

 enum Direction: String { case north case west case south case east } let north = Direction(rawValue: "north")

Ukhamaraki enums ukatakix mä init costumbre luraraksnawa. Taqi enum inits ukax self asignañapawa.

 enum DeviceType { case phone case tablet init(screenWidth: Int) { self = screenWidth > 800 ? .tablet : .phone } }

Qhipa uñakipaña

Swift ukanx taqi kunatix inicializadores ukan wakiskir amtanakap uñt’ayawaytanwa:


  • Mä inicializador ukanx taqi yapunakax phuqhantatäñapawa.

  • Opcional var propiedades ukax nil ukaruw uñt’ayasi.

  • Estructuras ukax mä inicializador miembro ukan inakiw katuqapxi .

  • Miembron qalltayiripax chhaqtawayxiwa kunawsatix mä costumbre qalltayirix qhanañchatäki ukhaxa.

  • uñt’at qalltayirix taqi yapunak phuqhantatañapatakiw uñji ukatx super.init() ukaruw jawsaraki.

  • conveniencia inicializador ukax qalltañ simplifica, mä designado inicializador ukar jawsasa.

  • Conveniencia qalltirinakax sapa kutiw horizontal ( self.init ) sarapxi, ukatx designados inicializadores ukax verticales ( super.init ) ukaruw sarapxi.

  • conveniencia inicializador ukax subclases ukanakatakix janiw utjxiti, jupanakax machaq propiedades ukanakat yatiyapxi ukhaxa.

  • Mä superclase ukan conveniencia inicializador ukar kutt’ayañatakix , taqi uñt’at inicializadores ukanakax chhaqtayatäñapawa.

  • Jakhuwi jisk’achañatakixa, mä conveniencia uñakipaña qalltayirimpiwa apnaqasispa.

  • Mä subclase ukax machaq parámetros ukar jan uñt’ayañapatakix, ukax automáticamente taqi inicializadores ukanakaruw superclase ukanx herencia ukham katuqaraki.

  • Superclase ukax init() ukampikiwa jan parámetros ukampi, ukax automáticamente subclase inicializadores ukan jawsatawa.

  • wakiskir qalltayirix subclases ukan utjatap uñji, genéricos, protocolos ukat Self() ukanakan apnaqañataki.

  • UIView.init() ukax UIView.init(frame:) jan ukax UIView.init(coder:) ukar jawsatawa.

  • jan walt’ayat qalltawix mä opcional ukar kutt’ayaraki.

  • Enums ukax mä raw valoraniw mä libre init?(rawValue:) .

  • Taqi enum qalltirinakax self asignapxañapawa.


Aka qillqatanx mä aski yänak jikxatapxañamatakiw suyt’askta. Kunas jan qhankiti jan ukax jan chiqaw sañ munaschi ukhax Telegram ukan inaki qhanañcht’añatakix jawst’apxita: @kfamyn .

Uka tuqit wakiskir enlaces ukanaka

  1. Uka Swift Programación Aru (6) / Qalltañataki
  2. Swift in Depth ukax Tjeerd ukat 't Veen
  3. Telegrama - @kfamyn ukax mä jach'a uñacht'äwiwa