Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Refactoring
- Xcode
- 리펙터링
- HIG
- clean architecture
- Protocol
- swift documentation
- 리팩토링
- ribs
- uitableview
- swiftUI
- 스위프트
- 애니메이션
- Clean Code
- rxswift
- UITextView
- map
- 클린 코드
- RxCocoa
- UICollectionView
- tableView
- MVVM
- uiscrollview
- collectionview
- ios
- 리펙토링
- Human interface guide
- Observable
- SWIFT
- combine
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift 공식 문서] 14. Deinitialization (인스턴스 해제 초기화) 본문
Deinitialization
- deinitializer는 클래스 인스턴스가 해제되기 직전에 호출되며 직접 호출 불가능
- deinit 키워드
- class type에서만 사용
deinit
- deinit이 호출될 때까지 instance 메모리가 해제되지 않기 때문에 deinit안에서 호출된 인스턴스의 모든 속성에 접근 가능
deinit 사용 예시
- Player클래스는 게임에서 플레이어를 안내하고, 각 플레이어는 지갑에 일정 수의 동전을 보관하는 상태이고 이 동전은 coinsInPurse로 정의
- 은행에서 coin의 허용량이 정해져있다면, 각 플레이어가 coin을 사용하고 게임이 끝난 경우 Bank에 coin을 반납하는 프로그램
class Player {
var coinsInPurse: Int
init(coins: Int) {
coinsInPurse = Bank.distribute(coins: coins)
}
func win(coins: Int) {
coinsInPurse += Bank.distribute(coins: coins)
}
deinit {
Bank.receive(coins: coinsInPurse)
}
}
* 참고
https://docs.swift.org/swift-book/LanguageGuide/Deinitialization.html
'swift 공식 문서' 카테고리의 다른 글
[iOS - swift 공식 문서] 16. Error Handling (오류 처리) (0) | 2021.07.13 |
---|---|
[iOS - swift 공식 문서] 15. Optional Chaining (옵셔널 체이닝) (0) | 2021.07.12 |
[iOS - swift 공식 문서] 13. Inheritance (상속) (0) | 2021.07.05 |
[iOS - swift 공식 문서] 12. Subscripts (0) | 2021.07.03 |
[iOS - swift 공식 문서] 11. Methods (메서드) (0) | 2021.06.29 |
Comments