-
[Swift] νλ‘ν μ½ μ΄μ 리iOS/π Swift 2021. 5. 22. 15:11
[ νλ‘ν μ½ κ°μ ] - https://woozzang.tistory.com/44
μμ½: νλ‘ν μ½μ μꡬμ¬νμ΄λ©°, νλ‘ν μ½μ μ±νν νμμ μꡬμ¬νμ λ°λμ ꡬνν΄μΌν©λλ€.
[ μμ± μꡬμ¬ν ] - https://woozzang.tistory.com/45
μμ½: νλ‘ν μ½μμ μμ±μ κ°λ³μ±κ³Ό μκ΄μμ΄ λ°λμ var ν€μλλ§ μ¬ μ μμ΅λλ€.
[ λ©μλ μꡬμ¬ν ] - https://woozzang.tistory.com/48
μμ½: λ©μλ μꡬμ¬νμ κ·μΉμ μμ± μꡬμ¬νκ³Ό μ μ¬ν©λλ€.
[ μμ±μ μꡬμ¬ν ] - https://woozzang.tistory.com/53
μμ½: μμ±μλ ν΄λμ€μ κ²½μ° μμμ λλΉν΄ ꡬνμ `required` ν€μλλ₯Ό λΆμ¬μΌ ν©λλ€.
[ μλΈμ€ν¬λ¦½νΈ μꡬμ¬ν ]
protocol Something { subscript(_: Int) -> Int { get } } struct Some: Something { subscript(index: Int) -> Int { <#code#> } }
get set μ‘°ν©μΌλ‘ μ μΈ κ°λ₯νλ©° μλΈμ€ν¬λ¦½νΈμ ꡬνλΆλ κ³μ° μμ±μ κ·μΉμ λ°λ₯΄λ―λ‘ μ‘°ν©μ λ°λΌ ꡬνν΄μ£Όλ©΄ λ©λλ€.
μλ₯Ό λ€μ΄ νλ‘ν μ½μμ get μΌλ‘ μ μΈλ κ²½μ° get λλ get set λΈλ‘ λͺ¨λλ₯Ό ꡬνν΄μ€ μ μλ€.
π‘parameter name μ μΌμΉμν€μ§ μμλ μꡬμ¬νμ μΆ©μ‘±λ©λλ€.
[ νμ μΌλ‘μμ νλ‘ν μ½ ] - https://woozzang.tistory.com/54
μμ½: νλ‘ν μ½μ νμ μΌλ‘ μ·¨κΈλλ©°, First Class Citizen μ λλ€.
[ Delegation ] - https://woozzang.tistory.com/67
μμ½: Delegate ν¨ν΄μ νλ‘ν μ½μ μ¬μ©νμ¬ κ΅¬νν©λλ€.
[ νλ‘ν μ½ μ»΄ν¬μ§μ ]
& (μ°νΌμΌλ) λ¬Έμλ₯Ό μ¬μ©νμ¬ λ€μμ νλ‘ν μ½μ ν©μ³ νλμ μμ νμ μΌλ‘ μ·¨κΈν μ μμ΅λλ€.
λν νλ‘ν μ½κ³Ό ν΄λμ€λ ν©μΉ μλ μμ΅λλ€.
typealias Codable = Decodable & Encodable
μλ₯Ό λ€μ΄ Codable μ΄λΌλ νμ μ Decodable κ³Ό Encodable νλ‘ν μ½μ λͺ¨λ μ±μ©ν νμ μ κ°λ¦¬ν€λ typealias μ λλ€.
λΉμ°νμ§λ§ ν΄λΉ νμ μΌλ‘ μΊμ€ν λλ©΄ Decodable κ³Ό Encodable μ μ μΈλ λ©€λ²μλ§ μ κ·Όν μ μμ΅λλ€.
[ Optional Requirements ] - Objective-C λ°νμ κ³Ό κ΄λ ¨λ λ¬Έλ²μ λλ€.
@objc (objc attribute) μ optional (optional modifier) μ μ΄μ©νμ¬ νλ‘ν μ½μ μ μΈλ λ©€λ²λ₯Ό μ νμ μΌλ‘ ꡬννκ² ν μ μμ΅λλ€.
@objc λ μ€μννΈλ‘ μμ±ν μ½λλ₯Ό Objective-C λ°νμμμ ꡬλ κ°λ₯νκ² ν΄μ£Όλ μ½λμ λλ€.
@objc protocol Something { @objc optional var test: Int {get set} @objc optional func some() -> Int } // μλ¬ μλΈ class Some: Something { }
μμ μ½λμμ Something νλ‘ν μ½μ μ±ννμμ΄λ test μμ±μ μ νμ μΌλ‘ ꡬνμ΄ κ°λ₯ν©λλ€.
λ§μ½ ꡬννμ§ μμλ€λ©΄, optional λ©€λ²λ€μ λͺ¨λ μ΅μ λ νμ μΌλ‘ μ κ·Ό κ°λ₯νλ©°, κ°μ nil λ‘ μ΄κΈ°νλμ΄μμ΅λλ€.(β μ΄μ λ μλλ λ― )
κ·Έλ¦¬κ³ class νμμμλ§ μ±νμ΄ κ°λ₯ν©λλ€. ( @objc λ₯Ό μ¬μ©νλ©΄ AnyObject νλ‘ν μ½μ μλμΌλ‘ μμν©λλ€. )
[ νλ‘ν μ½ νμ₯ ]
νλ‘ν μ½μ extension μμ κΈ°λ³Έ ꡬνμ μΆκ°νμ¬ μ±νν νμ μκ² μ 곡ν μ μμ΅λλ€.
κΈ°λ³Έ ꡬνμ΄λ, νλ‘ν μ½μ μ±νν νμ μμ ꡬνμ μΆκ°νμ§ μμ μ κΈ°λ³Έμ μΌλ‘ μ 곡λλ ꡬνμ κ°λ¦¬ν΅λλ€.
λ§μ½ νλ‘ν μ½μ μ±νν νμ μμ μ§μ ꡬνμ νλ€λ©΄, κΈ°λ³Έ ꡬνμ μ¬μ©ν μ μμ΅λλ€.
λͺ¨λ νμ μ κΈ°λ³Έ ꡬνμ μ 곡ν μλ μκ³ , extension λ€μ where μ μ ν΅ν΄μ 쑰건μ μΆκ°ν μλ μμ΅λλ€.
extension Something where Self: Decodable { func print() { ... } }
Something νλ‘ν μ½μ μ±νν νμ μ€
Decodable νλ‘ν μ½μ μ±νν νμ μκ²λ§ print λ©μλμ κΈ°λ³Έ ꡬνμ μ 곡νλ€λ μ½λμ λλ€.
λ!
π€π’[μ°μ§±μ iOS λΈλ‘κ·Έ]π΅π»
iOSλ₯Ό 곡λΆνλ©΄μ λ°°μ΄ λ΄μ©μ κΈ°λ‘νκ³ μμ΅λλ€.'iOS > π Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] Metatype μ΄λ? (2) 2021.10.02 [Swift] Extensions μ΄μ 리 (μμ μ€) (2) 2021.05.27 [Swift] - Capturing Values by Closures (κ°μ μΊ‘μ²νλ ν΄λ‘μ ) (0) 2021.05.07 [Swift] μ λ ν°(Selector)λ? (2) 2021.05.02 [Swift] - defer λ¬Έμ΄λ? (0) 2021.04.29