일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CS
- 스트럭트
- swift
- 앱개발
- 세종대학교
- uikit
- AppStore
- SwiftUI
- 학과별커뮤니티
- 대표
- collectionview
- ios
- async
- forEach
- 이론
- struct
- 기초문법
- 반응형
- 디자인 패턴
- 실습
- mvc
- MVVM
- 토이프로젝트
- 프로토콜
- 네트워크
- 구름톤 유니브
- 딕셔너리
- 협업
- RxSwift
- WeatherKit
- Today
- Total
스윞한 개발자
Swift 기초 문법 - getter / setter 본문
이번 포스팅에서는 getter 접근자, setter 설정자에 대해 정리해보았습니다!
접근자/설정자란?
Swift에서는 프로퍼티의 값을 읽거나 설정하기 위해 **Getter(접근자)**와 **Setter(설정자)**를 사용합니다. 이들은 프로퍼티의 값을 가져오거나 설정하는데 사용되는 메서드이며, 일반적으로 계산 프로퍼티나 프로퍼티 감시자에서 자주 활용됩니다!!
스위프트에서의 getter와 setter는 프로퍼티 값을 가져오거나 설정하는 데 사용되는 메커니즘입니다. 프로퍼티에 대한 접근을 더 유연하게 제어하고, 값이 설정되거나 가져올 때 추가 작업을 수행할 수 있는 기회를 제공합니다.
1. Getter(접근자)
Getter는 프로퍼티의 값을 반환하는 역할을 합니다. Getter를 정의하지 않으면 자동으로 기본 getter가 생성됩니다.
class Person {
var age: Int = 25 // 프로퍼티
var isAdult: Bool {
return age >= 18 // 계산된 프로퍼티의 getter
}
}
let person = Person()
print(person.isAdult) // true
또한 이렇게 반환되다 보니 프로퍼티의 값을 가져오는 메서드이기도 합니다. 위에서 말한대로 기본적으로 모든 프로퍼티에는 자동으로 생성되는 기본 Getter가 있습니다. 그러나 필요에 따라 커스텀 Getter를 정의할 수 있습니다.
class Circle {
var radius: Double
// 기본 Getter
// 커스텀 Getter
var diameter: Double {
get {
return radius * 2
}
}
init(radius: Double) {
self.radius = radius
}
}
let myCircle = Circle(radius: 5.0)
print(myCircle.diameter) // 10.0
2. Setter(설정자)
Setter는 프로퍼티의 값을 설정하는 역할을 합니다. Setter를 정의하지 않으면 읽기 전용 프로퍼티가 됩니다. Setter는 프로퍼티의 값을 변경할 때 호출되며, 필요에 따라 커스텀 Setter를 정의할 수 있습니다.
Setter를 정의할 때 newValue라는 특별한 이름의 매개변수를 사용하여 새 값을 받아올 수 있습니다.
class Temperature {
var celsius: Double = 0.0
var fahrenheit: Double {
get {
return celsius * 9 / 5 + 32
}
set {
celsius = (newValue - 32) * 5 / 9
}
}}
var temperature = Temperature()
temperature.fahrenheit = 68 // 이 값 설정은 setter 호출
print(temperature.celsius) // 20.0
class Circle {
var radius: Double
// 기본 Setter
// 커스텀 Setter
var diameter: Double {
get {
return radius * 2
}
set(newDiameter) {
radius = newDiameter / 2
}
}
init(radius: Double) {
self.radius = radius
}
}
var myCircle = Circle(radius: 5.0)
print(myCircle.diameter) // 10.0
// Setter를 통해 프로퍼티 값 변경
myCircle.diameter = 20.0
print(myCircle.radius) // 10.0
위의 예시에서 diameter 프로퍼티는 Getter를 통해 값을 가져오고, Setter를 통해 값을 설정합니다. Setter에서는 매개변수 newDiameter를 사용하여 설정하려는 값에 접근할 수 있습니다.
참고(출처) : 개발하는 정대리, 야곰(Swift5)
'Swift 이론' 카테고리의 다른 글
Swift 기초 문법 - 멀티트레일링 클로져 (0) | 2024.01.26 |
---|---|
Swift 기초 문법 - 코더블 Codable (0) | 2024.01.25 |
Swift 기초 문법 - 의존성 주입 Dependency (0) | 2024.01.25 |
Swift 기초 문법 - class func vs static func (0) | 2024.01.24 |
Swift 기초 문법 - private(set)/foreach, enumerate/compactMap/flatMap (0) | 2024.01.24 |