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 |
Tags
- 리펙토링
- RxCocoa
- HIG
- rxswift
- 리펙터링
- 리팩토링
- Observable
- tableView
- UITextView
- combine
- MVVM
- 클린 코드
- clean architecture
- 애니메이션
- Xcode
- collectionview
- Clean Code
- SWIFT
- 스위프트
- ios
- ribs
- Human interface guide
- Protocol
- swift documentation
- UICollectionView
- uitableview
- Refactoring
- swiftUI
- uiscrollview
- map
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] (프로퍼티 구분) Stored Property vs Computed Property 본문
iOS 기본 (swift)
[iOS - swift] (프로퍼티 구분) Stored Property vs Computed Property
jake-kim 2021. 6. 19. 13:56Stored Property vs Computed Property
- Stored Property는 초기화 값이 존재하는 프로퍼티
- Computed Property는 최가화 값이 존재하지 않는 프로퍼티
- 예시)
- p1은 초기화 값이 존재하므로 Stored Property
- p2는 초기화 값이 존재하지 않으므로 Computed Property
- p3는 바로 초기화값이 존재하지 않지만 init구문에서 p3를 초기화해주므로 Stored Property
class PropertyTest {
// 1
var p1: Int = 1
// 2
var p2: Int {
get {
return p1 + 2
}
set {
print(newValue)
}
}
// 3
var p3: Int {
didSet { print(p3) }
}
init(p3: Int) {
self.p3 = p3
}
}
{ get set }, didSet, willSet
- didSet, willSet이 있으면 초기화 값이 존재하는 Stored Property
- { get set }이 있으면 초기화 값이 없는 Computed Property
- 예시)
- 위 코드에서 p3: Int 초기화 값이 없고 init구문을 확인하여 Stored Property라고 판단했지만 블럭 내에 didSet만 보고도 Stored Property라고 판단 가능
암기 방법
- 등호 = 가 있거나 didSet, willSet을 사용하면 > Stored property
- 등호가 없고 get, set이 존재하면 > Computed property
- 단, 등호가 없어도 var, Optional로 선언되어 있으면 Stored property
/// Stored property
var sumVal1: Int = 1
/// Stored property
var sumVa2: Int?
/// Computed Property
var sumVal3: Int = {
return 1
}()
'iOS 기본 (swift)' 카테고리의 다른 글
[iOS - swift] Self vs self (대문자 Self와 소문자 self) (0) | 2021.07.06 |
---|---|
[iOS - swift] Identifiable 프로토콜 (0) | 2021.06.29 |
[iOS - swift] 초기화 사용 주의(super.init 호출 타이밍) (0) | 2021.06.18 |
[iOS - swift] tableView (테이블뷰), section 사용 방법 (0) | 2021.06.13 |
[iOS - swift] leading과 left, trailing과 right (0) | 2021.06.05 |
Comments