ν°μ€ν 리 λ·°
μλ νμΈμ?
λꡬ리μ λλ€!
μ€λμ νλ‘ν μ½μμ μ΄κΈ°ν ꡬ문 μꡬμ¬νμ λν΄
μμ보λλ‘ νκ² μ΅λλ€!!
μ΄κΈ°ν ꡬ문 μꡬμ¬ν
μ΄κΈ°νꡬ문λ νλ‘ν μ½μμ
μꡬμ¬νμΌλ‘ μ€ μ μλλ°μ?
μ΄μ ν¬μ€ν μ λ³΄κ³ μ€μ ¨λ€λ©΄ μμκ² μ§λ§
νλ‘ν μ½μ κ°λ₯ ꡬνμ μνλ€κ³ νμ£ ?
μ΄κΈ°νꡬ문 λν λ©μλ ννμ΄λκΉ λ©μλ μꡬμ¬νκ³Ό μ μνλκ²μ΄
λΉμ·ν΄μ!
λ°λλ μ€κ΄νΈ μλ ννλ‘μ!!
λ°λ‘ μ½λλ‘ μ μν΄λ³Όκ²μ!!
protocol SomeProtocol {
init(someParameter: Int)
}
κ°λ¨νμ£ ?γ γ
νλ‘ν μ½ μ΄κΈ°ν ꡬ문 μꡬμ¬νμ ν΄λμ€ κ΅¬ν
λ€μμ μ΄κΈ°ν ꡬ문μ λ΄μ νλ‘ν μ½μ ν΄λμ€μμ
μ€μνλλ‘ νλ λ΄μ©μ΄μμ!!
κΆκΈνλκΉ λ°λ‘ ν΄λμ€μ νλ‘ν μ½μ μ±νμμΌ λ³Όκ²μ!!

κ·Όλ° requiredλΌλ μμμ΄κ° λΆμμ΅λλ€!!
μ΄μΉκ΅¬λ λκΉμ...?
곡μλ¬Έμλ₯Ό νμΈν΄λ³΄λ©΄
required μμμ΄μ ν¨κ» μ΄κΈ°ν ꡬ문 ꡬνμ νμν΄μΌνλ€.
required μμμ΄λ₯Ό μ¬μ©νλ©΄ μ€μνλ λͺ¨λ νμν΄λμ€μ μ΄κΈ°ν ꡬ문 μꡬμ¬νμ λͺ μμ λλ μμλ ꡬνμ μ 곡νμ¬
νλ‘ν μ½μ μ€μν μ μλ€.
λΌλ λ΄μ©μ΄ μλ€μ!!
κ·Έλ°λ° κΆκΈν μ μ΄ μκ²Όμ΄μ
λ§μ½ μ΄κΈ°ν κ΅¬λ¬Έμ΄ μλ λΆλͺ¨ν΄λμ€μ μ΄κΈ°ν μꡬμ¬νμ΄ μλ νλ‘ν μ½μ
λμμ μμνλ©΄ μ΄λ»κ² λ κΉ...?
κΆκΈνλκΉ λ°λ‘ ν΄λ³Όκ²μ!!
μ λ² μκ°μ νμΈν΄λ³Έκ²μ²λΌ ν΄λμ€μ νλ‘ν μ½μ λμμ μμν λ
ν΄λμ€λ₯Ό λ¨Όμ λ°°μΉν΄ μ€λλ€~
κ·ΈλΌ κ·Έλ₯ μλ¬κ° λ¬λλ°

μ.. λμ§?
μλμμ±μ΄ μλ€?γ γ γ γ γ
μΌλ¨ requiredμμμ΄λ₯Ό μ¬μ©ν΄μ init()λ©μλλ₯Ό μμ±νλ©΄
overrideμμμ΄λ κ°μ΄ λΈλ €μ€λ€μ!

μ΄κ²λ 곡μλ¬Έμλ₯Ό ν΅ν΄ νμΈν΄ 보μλλ°μ~
μ΄λ κ² ν΄λμ€μ νλ‘ν μ½μ κ°μ΄ μμλ°μ κ²½μ°
requiredμ overrideμμμ΄λ₯Ό κ°μ΄ μμ±ν΄ μ£Όμ΄μΌ νλ€κ³ ν©λλ€!
νμ μΌλ‘ νλ‘ν μ½
νλ‘ν μ½μ νμ μΌλ‘ μ΄λ€???
νλ‘ν μ½μμλ μ΄λ ν κΈ°λ₯λ ꡬννμ§ μμ§λ§ νμ μΌλ‘ μ¬μ©ν μ μλ€ νλλ°μ..
곡μλ¬Έμμμλ
νμ μΌλ‘ νλ‘ν μ½μ μ¬μ©νλ κ²μ "νλ‘ν μ½μ μ€μνλ νμ Tκ° μ‘΄μ¬νλ€" λΌλ ꡬμ μμ λΉλ‘―λ μ‘΄μ¬ νμ (existential type) μ΄λΌκ³ ν©λλ€.
μ΄κ±°... λλ§μ΄μ§...?
μ΄ν΄κ° 1λ μκ°λ€μ..γ
κ·Έλμ λ¨Όμ μμ μ½λλ₯Ό 보면μ μ΄ν΄ν΄ λ³ΌκΉν©λλ€!
μ½λλ λ§μ°¬κ°μ§λ‘ 곡μλ¬Έμμμ κ°μ§κ³ μμ΅λλ€!
// μ£Όμ¬μ λλ€ λ²νΈ μμ± νλ‘ν μ½
protocol RandomNumberGenerator {
func random() -> Double
}
// νλ‘ν μ½ μ±ν
class LinearCongruentialGenerator: RandomNumberGenerator {
var lastRandom = 42.0
let m = 139968.0
let a = 3877.0
let c = 29573.0
// νλ‘ν μ½ μ€μ
func random() -> Double {
lastRandom = ((lastRandom * a + c)
.truncatingRemainder(dividingBy:m))
return lastRandom / m
}
}
// μΈμ€ν΄μ€ μμ±
let generator = LinearCongruentialGenerator()
// ν΄λμ€ μ μ
class Dice {
let sides: Int
// νλ‘ν μ½ νμ
μΌλ‘ μ¬μ©
let generator: RandomNumberGenerator
init(sides: Int, generator: RandomNumberGenerator) {
self.sides = sides
self.generator = generator
}
func roll() -> Int {
return Int(generator.random() * Double(sides)) + 1
}
}
var d6 = Dice(sides: 6, generator: LinearCongruentialGenerator())
for _ in 1...5 {
print("Random dice roll is \(d6.roll())")
}
// Random dice roll is 3
// Random dice roll is 5
// Random dice roll is 4
// Random dice roll is 5
// Random dice roll is 4
νλ‘ν μ½ μ μ -> νλ‘ν μ½ μ±ν λ° μ€μ νλ ν΄λμ μ μ -> ν΄λμ€ μΈμ€ν΄μ€(generator) μμ± -> νλ‘ν μ½ νμ νλ‘νΌν°λ₯Ό κ°μ§λ μ£Όμ¬μ ν΄λμ μ μ -> μ£Όμ¬μ ν΄λμ μΈμ€ν΄μ€ μμ± ν generatorλ‘ νλ‘ν μ½ νμ νλ‘νΌν° μ΄κΈ°ν
μ΄λ° νλ‘μ°λ‘ μμ κ° κ΅¬μ±λμ΄ μλλ°μ!
μμ λ₯Ό 보λ€λ³΄λκΉ λ¬΄μ¨λ§μΈμ§ μκ² λ€μ!!
νλ‘ν μ½μ μ무 κΈ°λ₯μ μ μν μ μμ§λ§ νλ‘ν μ½μ μ±νν ν΄λμ€λ ꡬ쑰체 λλ μ΄κ±°νμμ
νλ‘ν μ½μ μ€μνλλ‘ κΈ°λ₯μ μ μνκ³
μ΄κ²μ μΈμ€ν΄μ€λ‘ μμ±νμ¬ νμ μΌλ‘ μ¬μ©νλ€λ©΄!!!!
νμ μΌλ‘ μ¬μ©ν μ μλ€μ!!
μμ κΈλ‘ μ΄ν΄λͺ»νλ©΄ μ½λλΆν° νμΈνμ!!!
κ·ΈλΌ μμ λ§νλ "νλ‘ν μ½μ μ€μνλ νμ Tκ° μλ€."λΌλ 문ꡬκ°
λ¬΄μ¨ μλ―Έμμ μΈκΈλ κ²μΈμ§ λ°λ‘ μ΄ν΄κ° λλ€μ!!
ν΄ μ€λ νλ‘ν μ½μ λν΄ μ 리νλ κΈμ λ§λ¬΄λ¦¬ν μ μμλλ°μ!!
μ¬μ€ νλ‘ν μ½μ λν΄ λ κΆκΈνκ² μλλ° μ΄κ±΄ λ²μΈλ‘ 곡λΆν΄λ³ΌκΉ ν΄μ!
λΆλΆλΆλΆ κΆκΈνκ² μμ΄μγ γ
νΉμ νλ¦° λΆλΆμ΄λ μμ ν΄μΌν λΆλΆμ΄ μλ€λ©΄ μλ €μ£Όμλ©΄
ν° λμμ΄ λ κ²κ°μμ~~γ γ
μ€λλ κΈ μ½μ΄μ£Όμ μ κ°μ¬ν©λλ€!
'iOS > Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [iOS/Swift] swiftμ κ³ μ°¨ν¨μλ€ map, filter, reduce... λλ¨ λλ? (0) | 2022.06.25 |
|---|---|
| [iOS/Swift] NotificationCenter.. λ λλ? (1) | 2022.06.20 |
| [iOS/Swift] Protocol μμ보기 - (2/3) (0) | 2022.06.10 |
| [iOS/Swift] protocol μμ보기 - (1/3) (0) | 2022.06.06 |
| [iOS/Swift] νλ‘νΌν° λνΌ(Property Wrapper) (0) | 2022.06.04 |
- Total
- Today
- Yesterday
- νλ‘ν μ½
- network
- Protocol
- swift νλ‘ν μ½
- μ€ν λ μ΄μμ
- test
- μ€μννΈ
- Swift Network
- func
- ν μ€νΈ
- ios
- Clean
- observable
- autolayout
- RX
- swift urlsession
- swift 곡λΆ
- Property
- μ€μννΈ map
- νλ‘νΌν°
- μ€μννΈ νλ‘ν μ½
- URLSession
- 곡λΆ
- μ€μννΈ κ³΅λΆ
- xcode
- RxSwift
- swift
- XCTest
- set
- Unit Test
| μΌ | μ | ν | μ | λͺ© | κΈ | ν |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |