λ€μ΄κ°λ©° βοΈ κΈ°μ΄ λ¬Έλ² κ³΅λΆμ νμμ±μ λκ»΄μ μ΄μ¬μΌλ‘ λμκ° μ‘°κΈμ© 곡λΆνλ €κ³ νλ€. μ§κΈ 곡λΆνκ³ μ νλ κ²λ€μ΄ λ¨μ μ λ¦¬κ° λμ§ μλλ‘ κ³μ κ³ λ―Όνκ³ μ°κ΅¬νλ μμΈλ₯Ό κ°μ§λλ‘ νμ. κΈ°μ΄λ κ°μ₯ μ¬μμκ° μλλΌ κ°μ₯ μ€μν΄μ κ·Έ μλ―Έκ° μμμ κΉ¨λ«μ. ifλ¬Έ ππ»βοΈ νΉμ 쑰건μμλ§ μ½λλ₯Ό μ€νν΄μΌ νκ±°λ λλ μ€ννμ§ λ§μμΌ νκ±°λ νλ μν©μμ μ°μΈλ€. λ§ κ·Έλλ‘ μ‘°κ±΄μ λ°λΌ λ€λ₯Έ μ²λ¦¬λ₯Ό ν΄μ£Όκ³ μΆμ λ μ¬μ©νλ€. νλμ νλ‘κ·Έλ¨μ λ§λ€λ€ 보면 μ λ§ νμμ μΌλ‘ 쑰건문μ μ¬μ©ν΄μ 쑰건μ λ°λ₯Έ μ²λ¦¬λ₯Ό ν΄μ£Όλ μν©μ΄ λ°μνκΈ° λλ¬Έμ νμμ μΌλ‘ μκ³ μμ΄μΌ νλ λ΄μ©μ΄λ€. μ€μν 건 ifλ¬Έμ μ¬μ©ν μ μλ μν©μμ switch-caseλ¬Έμ μ¬μ©ν μ μλ€λ κ²μΈλ° μ΄λ»κ² μ½λλ₯Ό μμ±ν΄μΌ ν μ§λ μ ..
μ€μννΈ
μλ
νμΈμ, νλΌμ
λλ€. μ΄λ² κΈμ μ 리ννλ‘ μμ±ν΄λμ΄ μ΄ν¬κ° μ‘°κΈ λ±λ±ν μ μμ΅λλ€.. μ΄ν΄λΆνλλ €μ π₯² μ΄λ² κΈμ μ΄ν¬λ λ±λ±νκ³ μ€κΈ νμμ΄λ€. λ무 μ΄λ ΅κ² μκ°ν νμκ° μλ κ°λ
μ΄λ€. λ¨μνκ² λ§μ보μ. μμ½ νλ‘ν μ½μμ μ¬μ©λλ μ λ€λ¦ Placeholderμ λλμ΄λ€. Associated Typeμ μλ typealiasμλλ°, Swift 2.2λΆν° Associated Typeμ΄λ ν€μλλ‘ λ°λμλ€. μ€λͺ
μμ λ κ°μ§ κ΄μ μμ 보면 λ΄μ©μ ν¬κ² μ΄λ ΅μ§ μλ€. μλμ μμλ‘ ν¨κ» μ΄ν΄ν΄λ³΄κ² λ€. μ°μ νλ‘μ νΈμ λν΄ μ κΉ μ΄ν΄ν΄λ³΄λ©΄, νλ‘μ νΈλ νμ¬ MVVM ν¨ν΄μ λ°λ₯΄κ³ μλ€. λ€μ νλ‘μ νΈμμλ λΉμ¦λμ€ λ‘μ§μ μ²λ¦¬νλ ViewModelμ ꡬνν΄μΌ νλ€. λ³΄ν΅ κ° ViewControlle..
ν΄λΉ κΈμ μ¬μ©λ μμλ 2κ°μ§ κΈμμ κ°μ Έμμ΅λλ€. μΆμ²λ κΈ λ§μ§λ§μ μ μ΄λμμ΅λλ€. μ°Έκ³ νμ
μ κΈ μ½μ΄μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€ :) π¬ λ€μ΄κ°κΈ°μ μ κ²°λ‘ λΆν° λ§νκ³ μμνκ² μ΅λλ€. typealiasλ μ½λλ₯Ό μ’ λ κ°κ²°νκ² κ°λ
μ±μκ² μμ±νκΈ° μν΄μ μ¬μ©ν©λλ€. μΈμ μ¬μ©νλꡬμ? μ λ΅μ μμ΅λλ€. λ€λ§ μΌλ°μ μΌλ‘ μ¬μ©νλ κ²½μ°λ μμ£ . μ΄λ² κΈμμλ κ·Έ λΆλΆμ λν΄μ ν¨κ» μμ보λλ‘ νκ² μ΅λλ€. π typealiasλ typealiasλ νμ
μ λΆμΌ μ μλ λ³μΉ, μ½μΉμ
λλ€. typealias (μ¬μ©ν λ³λͺ
) = (μ‘΄μ¬νλ νμ
) ex) typealias Nickname = Int ex) typealias Codable = Decodable & Encodable ex) ... typealiasλ μ..
μλ
νμΈμ, νλΌμ
λλ€~ μ€λμ Convenience initializerκ° λ¬΄μμΈμ§ μμλ³΄κ² μ΅λλ€! μ΄λμ
λΌμ΄μ λ ν¬κ² 2κ°μ§λ₯Ό μ΄ν΄λ³Ό μ μμ΅λλ€. Designated initializer, Covenience initializer μ°¨λ‘λλ‘ μ§μ μ΄λμ
λΌμ΄μ , νΈμ μ΄λμ
λΌμ΄μ λΌκ³ ν΄μν΄λ³Ό μ μλλ°, μ§μ μ΄λμ
λΌμ΄μ λ ν΄λμ€(ꡬ쑰체)λ΄μ λͺ¨λ νλ‘νΌν°κ° μ΄κΈ°νλ μ μλλ‘ ν΄μ£Όλ μ΄λμ
λΌμ΄μ μ΄κ³ , νΈμ μ΄λμ
λΌμ΄μ λ μΆκ°μ μΈ μμ
μ ν μ μλλ‘ ν΄μ£Όλ 보쑰 μ΄λμ
λΌμ΄μ μ
λλ€. Designated init μ νλΌλ―Έν° μΌλΆλ₯Ό κΈ°λ³Έκ°μΌλ‘ μ€μ ν΄μ Convenience init μμμ Designated init μ νΈμΆν΄μ μΈ μ μμ΅λλ€. μ€μν ν¬μΈνΈλ λ€μκ³Ό κ°μ΅λλ€. Convenience i..
μ°λ¦¬λ μ΅μ
λμ λν΄ λ¬Όμμ λ, μΌλ§λ μ λλ΅ν μ μμκΉ? Summary μ΅μ
λμ λ³μμ κ°μ΄ μμ μλ μκ³ , μμ μλ μλ μν(nil)λ₯Ό νννκΈ° μν΄ Swiftμ λμ
λ κ°λ
μ
λλ€. μ΅μ
λμ Enum ννλ‘ μ μλμ΄ μκ³ , κ°μ μκ³ μμμ κ° Caseλ‘ κ°μ§κ³ μμ΅λλ€. μ΅μ
λλ‘ ννλ κ°μ μ κ·Όνλ λ°©λ²μΌλ‘λ Forced Unwrapping(κ°μ μΈλν), Optional Binding(μ΅μ
λ λ°μΈλ©), Nil-Coalescing Operator(Nilλ³ν©μ°μ°μ)κ° μμ΅λλ€. μ΅μ
λ 체μ΄λμ ν΅ν΄μ μ΅μ
λ λ°μΈλ©μΌλ‘ ννλ μ½λλ₯Ό κ°κ²°νκ² μμ±ν μ μμ΅λλ€. μ΅μ
λ(Optional) λλ λ
μ μ΅μ
λμ μλ―Έ μ μ°λ¦¬λ κ·Όλ³Έμλ κ°λ°μμ΄κΈ° λλ¬Έμ Apple 곡μ λ¬Έμλ₯Ό 보λλ‘ νμ£ . (..
μλ
νμΈμ! λ€μ λμμμ΅λλ€ :) μ€λμ μ’ μΌμ° 볡μ΅μ λ§λ¬΄λ¦¬ νμ΅λλ€. μ€ν½ μνμ λ³΄κ³ μμΌλ,, κ²°κ³Όλ μ’μ§ μμ λ― νλ€μ... μ€νΌνΉ μ°μ΅μ΄ νμν¨μ λκΌμ΅λλ€!! μ€λμ μ€μννΈ λ¬Έλ² λ³΅μ΅ 2μΌμ°¨μ
λλ€! ν¨μ, μ΅μ
λ, μ΄κ±°ν, ꡬ쑰체, ν΄λμ€κ° ν ν½μ΄μκ³ ! λ³΅μ΅ ννΈμ κ²½μ° λ΄μ©μ μμΈν μ μ§ μμΌλ €κ³ ν©λλ€. μ΄λ―Έ μμμ μ 리νκ³ , μμΌλ‘λ ν΅μ¬λ§ μ€μ¬λκ°λ κ³Όμ μ΄ μ€μν κ² κ°μμμ! βΆοΈ μλ¬Έ μΆμ² κΉνλΈ λ§ν¬ - Day 14 μ€μννΈ λ³΅μ΅ (2)
μλ
νμΈμ, νλΌμ
λλ€. μ΄μ©λ€ 보λ λΈλ‘κ·Έμ 2λ²μ§Έ ν¬μ€ν
μ νκ² λμλλ°μ! μ§κΈκΉμ§ μ 리μ λν κ°λ°(?!) λλ¬Έμ λΈλ‘κ·Έ μ 리λ₯Ό λ―Έλ€μμλλ° μ΄μ λ μ½λ§€μ΄μ§λ§κ³ κ·Έ λμ 곡λΆνλ λ΄μ©μ΄λ μλ‘κ² μκ²λ λ΄μ©μ κΎΈμ€ν μ μ 리ν΄λ³΄λ €κ΅¬μ! μ€λμ 100 Days Of Swiftμ 2μΌμ°¨ μ
λλ€. λ°°μ΄/μ§ν©/νν/λμ
λ리 λ±μ 볡μ‘ν μλ£νκ³Ό π€μ€μννΈμ νΉλ³ν λ
μμ΄μ£ . Enum(μ΄κ±°ν)μ μ 리ν΄λ³΄μμ΅λλ€. μμΈν λ΄μ©μ κΉνλΈμ μ μ 리λμ΄ μμ΅λλ€ π κ°μΈ 곡λΆμ©μ΄λΌ λ΄μ©μ΄ μ‘°κΈ κΈΈμ΄μ‘μ§λ§, 보λ λΆλ€μκ² λμμ΄ λλ€λ©΄ μ’κ² μ΅λλ€ :D μλ¬Έλ§ν¬ βΆοΈ κΉνλΈ μ£Όμ λ νΌλ°μ€ βΆοΈ Enum μ΄κ±°ν μ 볡νκΈ° 1νΈ - μΌμΌ(FLIP)λ λΈλ‘κ·Έ