μ 체 κΈ

Swift5.1 λΆν¬λͺ νμ (Opaque type) some Type SE-0244
μλ νμΈμ~! μ€λμ Swift5.1μμ μκ°λ λΆν¬λͺ νμ Opaque typeμ λν΄μ μκ°ν΄ λλ¦¬λ €κ³ ν©λλ€~! λͺ νν λ°ν νμ μ μΈλΆμ μ 곡νλ λμ , Opaque λ°ν(return) νμ μ κ°μ§ ν¨μ, λ©μλλ μμ μ λ°ννμ μ 보λ₯Ό μΈλΆμ μ¨κΈΈ μ μμ΅λλ€. Return νμ μ μ¨κΈ°λ κ²μ λͺ¨λλ‘ νΈμΆλλ μ½λμ λͺ¨λ μ¬μ΄μμ μ μ©νκ² μ¬μ©ν μ μμ΅λλ€. μ λ€λ¦(ꡬνλΆ μΆμν), νΈμΆνλ κ³³μμλ ꡬ체μ μΈ νμ (μ : )μ μλ μνμμ μ¬μ©νλ€λ©΄, Opaque typeμ λ°λλ‘ κ΅¬νλΆλ ꡬ체μ μΈ νμ μ μκ³ μμ§λ§, νΈμΆνλ κ³³μμλ νΉμ νλ‘ν μ½λ§ μ μ μμ΅λλ€. - Generic - ꡬνλΆ - μΆμννμ¬ μμ± νΈμΆλΆ - ꡬ체μ μΈ νμ μ§μ (νμ μ μ μ μμ) - Opaque Ty..

Swift5.1 ꡬ쑰체 λ©€λ²λ³ μ΄λμ λΌμ΄μ (Memberwise Initializer)μ κΈ°λ³Έκ° ν©μ± SE-0242
μλ νμΈμ~! μ€λμ Swift5.1μμ μλ‘κ² λ³κ²½λ μ¬νλ€μ μ 리ν΄λ³΄λ €κ³ νλλ°μ 첫 λ²μ§Έλ‘ λ©€λ²μ μ΄κΈ°ν(memberwise initializer)μ κΈ°λ³Έκ° ν©μ±μ λν΄μ μμλ³΄λ €κ³ ν©λλ€. μ΄λ»κ² λ¬λΌμ‘λλ° ν¨κ» μμ보μμ£ ~! κΈ°λ³Έμ μΈ κ΅¬μ‘°μ²΄ κ°μμ§λ₯Ό λ§λ€μμ΅λλ€. struct Dog { var age: Int var name: String } μ»΄νμΌλ¬μμλ μλμ κ°μ΄ μ΄κΈ°νλ₯Ό ν©μ±ν©λλ€. init(age: Int, name: String) κ·Έλ°λ° λ§μ½ λͺ¨λ κ°μμ§μ λμ΄μ 0μΌλ‘ μ΄κΈ°κ°μ κ°λλ€κ³ κ°μ νκ³ μΈμ€ν΄μ€λ₯Ό μμ± νμ΅λλ€. νμ§λ§ μΈμ€ν΄μ€ μμ±μ Swift μ»΄νμΌλ¬κ° μ΄κΈ° κ°μ΄ μλ μμ±μ λν κΈ°λ³Έκ°μ μμ±ν μ μκΈ° λλ¬Έμ μλ¬κ° λ°μν©λλ€. struct Dog { var age..

Swift5.0 SE-0225 λ°°μ ꡬνκΈ° isMultiple(of:)
μλ νμΈμ~! μ€λμ isMultiple(of:)μ λν΄μ μκ°ν΄ λλ¦¬κ² μ΅λλ€. isMultiple(of:)λ λ°°μμΈμ§ νλ¨νλ λ©μλμ λλ€. μ¬κΈ°μ λ°°μλ μ΄λ€ μ μμ λ€λ₯Έ μ μλ₯Ό κ³±νμ λ λμ€λ μμ λλ€. μλ₯Ό λ€μ΄ 6 = 2 * 3μ΄λ―λ‘ 6μ 3μ λ°°μμ λλ€. μλ μ½λ μ²λΌ μ΄μ μλ % μ°μ°μλ₯Ό μ¬μ©ν΄μ λ°°μλ₯Ό νλ¨νλ μ½λλ₯Ό μμ±νμμ£ κ·Έλ λ€λ©΄ isMultiple(of:)μ μ΄λ€ λ¬Έμ λ₯Ό ν΄κ²° ν μ μκΈΈλ μ νμμ 곡μμ μΌλ‘ μ 곡νκ³ μμκΉμ? let number = 6 if number % 3 == 0 { print("6μ 3μλ°°μ") } 첫 λ²μ§Έλ‘, 0μΌλ‘ λλλ μν©μ λ³Ό μ μλλ°μ. number % 0 == 0 μ 무쑰건 μ°Έ μ λλ€. number.isMultiple(of: 0)μ nu..

Swift5.0 μ€μ²©λ Optionals(??) νλ©΄ν νκΈ° SE-0230
μλ νμΈμ~! μ΅κ·Ό λ²μ μμλ λνλμ§ μμ§λ§ Swift4.2 μ΄ν μ€μννΈ λ²μ μμλ μΈλν μμ μ΄λ try?λ‘ μ΅μ λ κ°μ κ°μ Έμ¬λ μ€μ²©λ ????μ λ³Ό μ μμμ΅λλ€. νμ§λ§ Swift5.0λΆν°λ κ·Έλ κ² μ²λ¦¬λμ§ μλλ°μ μλ μμ μ½λλ₯Ό ν¨κ» 보μλ©΄μ μ΄λ»κ² λ¬λΌμ‘λμ§ λ³΄κ² μ΅λλ€. struct User { var id: Int init?(id: Int) { if id String { // complicated code here return "No messages" } } User ꡬ쑰체 μμ μ΅μ λ μ΄κΈ°νκ° μμ΅λλ€. 쑰건μ λ§λ μμ΄λκ° λ€μ΄μμΌλ§ μ μ κ° μμ±λλλ‘ νκΈ° μν¨ μ λλ€. ..

UITextField returnν€(ν€λ³΄λ νλ¨ μ€λ₯Έμͺ½ νλμλ²νΌ) λλ μ λ μ΄λ²€νΈλ₯Ό λ°μ보μ func textFieldShouldReturn
μλ νμΈμ~! μ€λμ UITextField Delegate λ©μλμ€ νλμΈ func textFieldShouldReturn(_ textField: UITextField) -> Bool μ λν΄μ μμ λ³΄κ² μ΅λλ€. ν€λ³΄λκ° λμ€λ λ§μ κ³³μμ return(μν°ν€)ν€λ₯Ό λλ₯Έ ν μ΄ν λμλ€μ μ²λ¦¬νκ³ μΆμ κ²½μ°κ° μμ΅λλ€. μμλ‘ κ²μμ μλ£νκ³ λμ λ¦¬ν΄ ν€λ₯Ό λλ₯΄κ³ λ ν, νμ μ λ ΈμΆμν€κ³ μΆλ€λμ§ μλλ©΄ κ²μ κ²°κ³Όμ λν νλ©΄μΌλ‘ μ΄λ νκ³ μΆμ κ²½μ° λ±λ±, μ¬λ¬ μ΄λ²€νΈλ€μ΄ μμκ²λλ€. μ΄λ μ ν¨μλ₯Ό μ±ννλ©΄ μ²λ¦¬κ° κ°λ₯ν©λλ€. μλ μμλ₯Ό κ°μ΄ 보μμ£ λ‘κ·ΈμΈ νλ©΄μμ μ΄λ©μΌκ³Ό λΉλ°λ²νΈλ₯Ό λ°μ μ μλ νλ©΄ μ λλ€. returnν€μ λν μ΄λ²€νΈλ₯Ό λ°κΈ° μν΄ delegateλ₯Ό μ°κ²° νμ΅λλ€. impor..

Swift5.0 ν₯ν λ³κ²½ λ μ μλ Enum(μ΄κ±°ν) switch @unknown μμ± μ²λ¦¬ SE-0192
μλ νμΈμ~! μ€λμ Enumμ λν΄μ μ΄μΌκΈ° ν΄λ³΄λ €κ³ νλλ°μ. μ΄λ² Swift5.0μμ μΆκ°λ @unknown μμ±μ λν΄μ μ΄μΌκΈ° ν΄λ³΄λ €κ³ ν©λλ€. μ΄λ€ μν μ νλμ§ κ°μ΄ 보μμ£ ~! λ³΄ν΅ Enumκ° λΆκΈ°μ²λ¦¬μ Switchλ¬Έμ λ§μ΄ μ¬μ©νλλ°μ. enumμ μλ λͺ¨λ caseλ€μ 무쑰건 μ²λ¦¬ ν΄μΌν©λλ€. @unknown μμ±μ μ¬μ©ν΄μ λ―Έλ¬νκ² λ€λ₯Έ λ κ°μ§ λ°©λ²μ ꡬλΆν μ μλλ°μ μλ μμλ₯Ό λ³΄κ² μ΅λλ€. ν¨μ€μλ μ λ ₯μ λ°μ ν μ μλ μλ¬λ₯Ό κ°λ΅νκ² enumμΌλ‘ νννμ΅λλ€ enum PasswordError: Error { case short case obvious case simple } μλ¬ μ²λ¦¬λ₯Ό νλ λͺ¨μ΅μ λ³Ό μ μμ΅λλ€. func showPasswordError(_ error: ..

iOS16 κ°λ°μ λͺ¨λ μΆκ° (MacOS Ventura μ΄μ)
μλ νμΈμ μ€λμ κ°λ°μ λͺ¨λμ λν΄μ μκ°ν΄ λλ¦¬λ €κ³ ν©λλ€. μ΄μ iOS 16μ΄μ μλ κΈ°κΈ° ν μ€νΈμ λ³ λ€λ₯Έ on, off μ€μ μμ΄ κ°λ°μ κ³μ μμ ν΄λΉ λλ°μ΄μ€λ₯Ό λ±λ‘μ νλ©΄ μ± ν μ€νΈμ μ¬μ©ν μ μμμ΅λλ€. νμ§λ§ μ΄λ² iOS16κ° μ μ©λ λλ°μ΄μ€μμλ κ°λ°μ λͺ¨λλ₯Ό μΌμΌλ§ Xcodeμμ λλ°μ΄μ€ ν μ€νΈκ° κ°λ₯νλ°μ. κ°λ°μ λͺ¨λλ 무μμ΄κ³ , μ μΆκ° λμλμ§ μ΄λ»κ² μ¬μ©νλμ§ κ°λ¨νκ² μμλ³΄κ² μ΅λλ€~! κ°λ°μ λͺ¨λλ? iOS 16μμ μλ‘μ΄ λͺ¨λλ‘ μΌλ°μ μΈ κ°λ°μ μν¬νλ‘λ₯Ό μ§μνλ λͺ¨λμ λλ€. κ°λ°μ λͺ¨λλ κΈ°λ³Έκ°μΌλ‘ λΉνμ±νλμ΄ μκ³ κΈ°κΈ°λ₯Ό λͺ μμ μΌλ‘ κ°λ°μ λͺ¨λ μ€μ ν΄μΌ ν©λλ€. λ±λ‘μ μμ€ν μ λ°μ΄νΈ λ° μ¬λΆν μ΄νμλ μ μ§λ©λλ€. κ°λ°μ λͺ¨λκ° νμν μ΄μ ? κ°λ ₯ν κ°λ°μ κΈ°λ₯μ΄ ν΄..

Swift 5.0 Result Type μκ° (μλ¬ μ²λ¦¬λ₯Ό μ½κ³ κΉλνκ² κ²°κ³Όλ λͺ ννκ² SE-0235)
μλ νμΈμ~! μ€λμ μλ‘κ² μκ°λ Result Typeμ μκ°ν΄ λλ¦¬λ €κ³ ν©λλ€. Result Typeμ μλ μ½λ μ²λΌ enumμΌλ‘ μ μΈ λμ΄μκ³ μ±κ³΅κ³Ό, μ€ν¨λ₯Ό GenericμΌλ‘ λ°κ³ μμ΅λλ€. μ€ν¨λ 무쑰건 μλ¬ νμ μ΄κ΅¬μ @frozen enum Result where Failure : Error κΈ°μ‘΄μ μλ¬μ²λ¦¬ λ°©μμ κ°μ νκ³ κ²°κ³Όκ°μ λͺ νν λ°κΈ° μν΄ Result Typeμ΄ λμλ€κ³ 보μ¬μ§λλ°μ. μ κ·Έλ°μ§ μλ μμ λ₯Ό ν΅ν΄ ν¨κ» 보μμ£ ~! μλ μ£Όλ¬Έμ λ°λ λ°μμ λ λ°μ ν μ μλ κ°λ¨ν μλ¬λ₯Ό μ μ νμ΅λλ€. enum OrderError: Error { case LackOfMoney } λ©λ΄λ νλ²κ±°κ° μ’μκ±° κ°μμ. νλ²κ±° μ’ λ₯μ μ’ λ₯μ λ°λ₯Έ κ°κ²©μ λ°μ μ μμ΅λλ€. enum Hamb..