현제의 현재이야기
[swift] 기초 문법 9일차 본문
class Soldier{
let name: String
var hp: Int
var needMoney : Int?
init?(name: String, hp: Int) {
if hp > 50000 {
return nil
}
if name.count <= 0 {
return nil
}
self.name = name
self.hp = hp
}
}
let genzi: Soldier? = Soldier(name: "genzi", hp: 560000)
if let genzi = genzi {
print(genzi.name)
} else {
print("초기화하지 못했습니다.")
}
//초기화하지 못했습니다.
init? 을 이용하면 조건에 따라서 nil을 반환하는 초기화를 만들 수 있다.
class PersonE {
var name: String
var pet: Puppy?
var child: PersonC
init(name: String, child: PersonC) {
self.name = name
self.child = child
}
// 인스턴스가 메모리에서 해제되는 시점에 자동 호출
deinit {
if let petName = pet?.name {
print("\(name)가 \(child.name)에게 \(petName)를 인도합니다")
self.pet?.owner = child
}
}
}
var donald: PersonE? = PersonE(name: "donald", child: jenny)
donald?.pet = happy
donald = nil
디이니셜 라이즌데, 메모리에서 해체되면 발생된다.
오늘은 여기까쥐...
'IOS > swift' 카테고리의 다른 글
[swift] 기초 문법 8일차(상속) (0) | 2022.09.15 |
---|---|
[swift] 기초 문법 7일차(프로퍼티) (0) | 2022.09.14 |
[swift] 기초 문법 6일차(클로저) (0) | 2022.09.13 |
[swift] 기초 문법 5일차 (0) | 2022.09.12 |
[swift] 기초 문법 4일차 (0) | 2022.09.11 |
Comments