-
[Swift] - Subscripts (μλΈμ€ν¬λ¦½νΈ)iOS/π Swift 2021. 2. 19. 17:21
ν΄λμ€, ꡬ쑰체, μ΄κ±°νμ μλΈμ€ν¬λ¦½νΈλ₯Ό μ μν μ μμ΅λλ€. μλΈμ€ν¬λ¦½νΈλ collection, list, sequence μ λ©€λ²μ λΉ λ₯΄κ² μ κ·Όν μ μλ μλ¨μ λλ€. μλΈμ€ν¬λ¦½νΈλ₯Ό μ¬μ©νλ©΄ μΈλ±μ€λ₯Ό μ΄μ©ν΄μ κ°μ μ κ·Όν΄μ κ°μ λ°κΎΈκ±°λ κ²μν μ μμ΅λλ€. setter λ κ° κ²μ λ©μλμ ꡬνμ΄ νμ μκ² λ©λλ€. μλ₯Ό λ€μ΄, λ°°μ΄μ someArray[index] μ κ°μ΄ μλΈμ€ν¬λ¦½νΈλ₯Ό μ΄μ©ν΄ κ°μ μ κ·Όνκ³ λ°κΏ μ μμ΅λλ€. νλμ νμ μ μ¬λ¬κ°μ μλΈμ€ν¬λ¦½νΈλ₯Ό μ μν μ μμ΅λλ€. μ¦, νλΌλ―Έν°μ νμ μΌλ‘ ꡬλΆλλ μ€λ²λ‘λ©μ΄ κ°λ₯ν©λλ€. μλΈμ€ν¬λ¦½νΈλ 1μ°¨μμ μ νλμ§ μκ³ , μ¬λ¬ κ°μ νλΌλ―Έν°λ₯Ό λ°μμ 컀μ€ν νμ μ λ§κ² μ μν μ μμ΅λλ€. Subscript Syntax μλΈμ€ν¬λ¦½νΈλ μΈμ€..
-
Access Control (μ κ·Ό μ μ΄)iOS/π Swift 2021. 2. 17. 19:05
μ κ·Όμ μ΄λ 'νμΌ κ° λλ λͺ¨λ κ°μ μ κ·Όμ μ νν μ μλ κΈ°λ₯' μ λλ€. import ν λͺ¨λμμ μ κ·Όν μ μλ κΈ°λ₯μ μ ννλ μ©λλ‘ μ¬μ©λ©λλ€. μ€μννΈμ μ κ·Όμ μ΄λ λͺ¨λκ³Ό μμ€νμΌμ κΈ°λ°μΌλ‘ μ€κ³λμμ΅λλ€. λͺ¨λμ λ°°ν¬ν μ½λμ λ¬Άμ λ¨μ μ λλ€. ν΅μ νλμ νλ μμν¬, λΌμ΄λΈλ¬λ¦¬, λλ μ ν리μΌμ΄μ μ΄ λͺ¨λ λ¨μκ° λ©λλ€. μμ€νμΌμ νλμ μ€μννΈ μμ€μ½λ νμΌμ μλ―Έν©λλ€. ν€μλμ λ°λΌ μ κ·Όν μ μλ λ²μκ° λ¬λΌμ§λλ°, 4κ°μ§λ‘ λλ μ μμ΅λλ€. 1. μμ μ΄ κ΅¬νλ κΈ°λ₯ μ μ λ΄λΆ 2. μμ μ΄ κ΅¬νλ νμΌ λ΄λΆ 3. μμ μ΄ κ΅¬νλ νμΌμ΄ ν¬ν¨λ λͺ¨λ λ΄λΆ 4. λͺ¨λμ importν λ λ€λ₯Έ λͺ¨λ λ±μ μΈλΆ ν€μλ λ²μ λΉκ³ open λͺ¨λ μΈλΆκΉμ§ κ°λ₯ ν΄λμ€μμλ§ μ¬μ© κ°λ₯ publ..
-
Computed Properties (κ³μ° μμ±) - PropertiesiOS/π Swift 2021. 2. 2. 17:16
"κ³μ° μμ±" κ³μ° μμ±μ ν΄λμ€, ꡬ쑰체, μ΄κ±°νμμ μ¬μ©ν μ μμ΅λλ€. κ°μ μ€μ λ‘ μ μ₯νμ§ μμ΅λλ€. λ©λͺ¨λ¦¬λ₯Ό μ°¨μ§νμ§ μμ΅λλ€. λμ , getter μ μ νμ μΌλ‘ setter λ₯Ό μ 곡νμ¬ κ·Έκ²λ€μ μ΄μ©ν΄ λ€λ₯Έ μμ±μ μ‘°ννκ³ κ°μ κ°μ μ μΌλ‘ μ€μ ν μ μμ΅λλ€. μ¦, κ³μ°μμ±μμ setter μΆκ°λ μ νμ¬νμ λλ€. λν setterλ§ μ‘΄μ¬νλ κ³μ° μμ±μ μμ΅λλ€. κΈ°λ³Έ λ¬Έλ² struct Rect { ... var center: Point { get { let centerX = origin.x + (size.width / 2) let centerY = origin.y + (size.height / 2) return Point(x: centerX, y: centerY) } set(newCenter..
-
Adopting a Protocol Using a Synthesized Implementation - ProtocolsiOS/π Swift 2021. 1. 27. 23:40
μ€μννΈλ μ¬λ¬ κ°λ¨ν ν΄λμ€λ€μκ² μλμ μΌλ‘ `Equatable`, `Hashable` κ·Έλ¦¬κ³ `Comparable` νλ‘ν μ½ μμ(conformance) μ μ 곡ν©λλ€. `conform to protocol`μ νκΈ° μν ꡬνμ΄ μλμΌλ‘ μ 곡λλ€λ μλ―Έμ λλ€. μ¬λ¬ κ°λ¨ν ν΄λμ€: Numbers, String λ±μ΄ μμ΅λλ€. +) Numbers. String μ Foundation Framework μ primitive type μ λλ€. μ΄ ν΅ν©λ ꡬνμ μ¬μ©νλ€λ κ²μ νλ‘ν μ½ μ±νμ μν λ³λμ λ°λ³΅μ μΈ μμ©μ½λ(boilerplate) ꡬνμ΄ νμ μλ€λ κ²μ μλ―Έν©λλ€. ν΅ν©λ ꡬν : synthesized implementation νλ‘ν μ½μ μ μΈκ³Ό ꡬνμ΄ λͺ¨λ λμ΄μμ΄μ μ±ννλ €λ νμ μ μ ..
-
[Swift] DelegationiOS/π Swift 2021. 1. 26. 09:35
Delegation μ `class` λ `struct` κ° μμ μ μ± μ μ€ μΌλΆλ₯Ό λ€λ₯Έ νμ μ μΈμ€ν΄μ€μκ² μμ (hand-off or delegate) νλ λμμΈ ν¨ν΄μ λλ€. μ΄ λμμΈ ν¨ν΄μ μμλ μ± μμ μΊ‘μννλ νλ‘ν μ½μ μ μνλ κ²μΌλ‘ ꡬνν μ μμ΅λλ€. κ·Έ κ²°κ³Όλ‘ νλ‘ν μ½μ μ±νν νμ ( μ΄ νμ μ delegate λΌκ³ λΆλ¦ λλ€ ) μ μμλ°μ κΈ°λ₯λ€μ μ 곡μ 보μ₯ν©λλ€. μ¦, μμν νμ (delegating objcet) μ κΈ°λ₯μ μμλ°μ νμ (delegate) μ΄ μ 곡ν©λλ€. Delegationμ λ€μκ³Ό κ°μ μν©μ μ¬μ©ν©λλ€: 1. νΉμ actionμ λν λ°μμ νκΈ° μν΄ μ¬μ©λκ±°λ, λ³΄ν΅ ~Delegate λΌλ μ΄λ¦μ κ°μ§ νλ‘ν μ½μ λλ€. 2. μμ€μ νμ μ μ νμμμ΄..
-
Checking Type & Downcasting - Type CastingiOS/π Swift 2021. 1. 21. 00:57
Checking Type /* item μ΄ Transportation νμ μΌλ‘ Upcasting λμ΄ μλ μν© */ ... if item is Metro { } else if item is Bus { } ... Type check operator ` is ` λ₯Ό μ¬μ©νμ¬ μΈμ€ν΄μ€κ° νΉμ subclass νμ μΈμ§ μλμ§ νμΈν©λλ€. μΈμ€ν΄μ€κ° νΉμ subclass νμ μ΄ λ§λ€λ©΄ true λ₯Ό , μλλΌλ©΄ false λ₯Ό λ°νν©λλ€. Type Casting μ νμ μ λ€λ₯Έ νμ μΌλ‘ μμ λ°κΎΈλ κ²μ΄ μλλΌ λ€λ₯Έ νμ μΌλ‘ μ·¨κΈλ§ νλ κ²μ΄λ―λ‘, is μ°μ°μλ‘ sublcassμΈμ§ μλμ§λ₯Ό νμΈ ν μ μκ² μ΅λλ€. Downcasting # as? # as! μ΄λ€ μνΌ ν΄λμ€ νμ μ κ°μ§ μΈμ€ν΄μ€λ μ¬μ€ μλΈν΄λμ€ ..
-
Type Casting Overview - Type CastingiOS/π Swift 2021. 1. 21. 00:42
Type Casting μ λ κ°μ§λ₯Ό κ°λ¦¬ν΅λλ€. 1. μΈμ€ν΄μ€μ νμ μ νμΈνλ μλ¨μ λλ€. μ¬κΈ°μλ ` is ` ν€μλλ₯Ό μ¬μ©ν©λλ€. 2. μΈμ€ν΄μ€λ₯Ό κ·Έ ν΄λμ€μ μμκ³μΈ΅μ Superclass νΉμ Subclassλ‘ μ·¨κΈνκ² ν©λλ€. μ¬κΈ°μλ ` as ` ν€μλλ₯Ό μ¬μ©ν©λλ€. μ¬κΈ°μ λ€λ₯Έ νμ μΌλ‘ μ·¨κΈνλ€ (treat) λ μλ―Έλ, κΈ°μ‘΄ μΈμ€ν΄μ€μ νμ μ λ³κ²½νλ κ²κ³Όλ μ°¨μ΄κ° μμ΅λλ€. μ μλ Type Casting μ κ°λ¦¬ν€κ³ , νμλ Type Conversionμ κ°λ¦¬ν΅λλ€. μΆκ°μ μΌλ‘ νλ‘ν μ½λ νλμ λ 립μ μΈ νμ μ΄κ³ , μμμ΄ κ°λ₯νμ¬ μμκ³μΈ΅μ΄ νμ±λλ―λ‘ Type Castingμ νμ©ν μ μμ΅λλ€. κ²°κ΅ Type Casting μ Class μ Protocolμ νμ νμ¬ μ¬μ©ν μ μμ΅λ..
-
[Swift] νμ μΌλ‘μμ νλ‘ν μ½ ( Protocol as Type )iOS/π Swift 2021. 1. 19. 15:32
μ°Έκ³ μλ£: Protocols - swift.org νλ‘ν μ½μ First Class Citizen μ΄κΈ° λλ¬Έμ, νλμ λ 립μ μΈ νμ ( a fully fledged types ) μΌλ‘ μ¬μ©ν μ μμ΅λλ€. λ°λΌμ μλ 3κ°μ§κ° κ°λ₯ν©λλ€. 1. function, method, initializer μ parameter μ return typeμΌλ‘ μ¬μ© κ°λ₯ 2. constant, variable, property μ type μΌλ‘ μ¬μ© κ°λ₯ 3. array, dictionary μ κ°μ 컨ν μ΄λμ itemμ typeμΌλ‘ μ¬μ© κ°λ₯ κ·Έλ¦¬κ³ νμ μ΄κΈ° λλ¬Έμ Upper Camel Case λ₯Ό μ¬μ©ν©λλ€. (e.g. RandomNumberGenerator, FullyNamed ...) class Dice { ..
-
[Swift] νλ‘ν μ½ μμ±μ μꡬμ¬ν (Initializer Requirements)iOS/π Swift 2021. 1. 19. 14:36
μ°Έκ³ μλ£: Protocols - swift.org Syntax νλ‘ν μ½μμ Initializer λ λ©μλ μ μΈ λ°©μκ³Ό λ§μ°¬κ°μ§λ‘ { } (curly brace) μμ΄ init(...) κ³Ό κ°μ κΌ΄λ‘ μ μΈν΄μ€λλ€. protocol SomeProtocol { init(someParameter: Int) } Protocol μ μ±νν Classμ Initializer ꡬν νλ‘ν μ½μ μ±νν νμ μ Initializerλ₯Ό designated initializerλ convenience initializerλ‘ κ΅¬νν μ μμ΅λλ€. νλ‘ν μ½μ class, struct, enum νμ λ§ μ±νν μ μμ΅λλ€. λ κ²½μ° λͺ¨λ `required` ν€μλλ₯Ό initializer μμ λΆμ¬μ£Όμ΄μΌ ν©λλ€. SomeClass..