Property(프로퍼티) 란?
: 클래스, 구조체 또는 열겨형 등에 관련된 값
프로퍼티의 종류
- 저장 프로퍼티
- 연산 프로퍼티
- 타입 프로퍼티
저장 프로퍼티
import UIKit
// 저장 프로퍼티
// 프로퍼티를 사용하는 가장 간단한 방법
// 변수나 상수로 선언된 클래스나 구조체 인스턴스의 일부분으로 저장되는 것
struct Family {
var name: String // 이름을 저장하는 저장 프로퍼티
let gender: String // 성별을 저장하는 저장 프로퍼티
}
class Friend {
var name: String // 이름을 저장하는 저장 프로퍼티
let gender: String // 성별을 저장하는 저장 프로퍼티
// 초기화 구문
init(name: String, gender: String) {
self.name = name
self.gender = gender
}
}
연산 프로퍼티
import UIKit
// 연산 프로퍼티
struct Weight {
// 저장 프로퍼티
var height: Int
var weight: Int
// 비만인지 판단하는 연산 프로퍼티
var obesity: Bool {
get {
if((Double(height - 100) * 0.9) >= 25.0) {
return true
} else {
return false
}
}
}
}
var man_1 = Weight(height: 170, weight: 120)
print(man_1.obesity) // 출력결과: true
※ 프로퍼티의 옵저버에는 두 가지의 옵저버 있다.
willSet과 didSet
값이 저장되기 직전에 호출되는 willSet 옵저버
값이 저장된 직후에 호출되는 didSet 옵저버
class Account {
var credit: Int = 0 {
// 소괄호 이름 지정
willSet {
print("잔액이 \(credit)원에서 \(newValue)원으로 변경될 예정입니다.")
}
didSet {
print("잔액이 \(oldValue)원에서 \(credit)원으로 변경되었습니다.")
}
}
}
var account = Account()
account.credit = 10000
출력값을 확인해보면
타입 프로퍼티
// 타입 프로퍼티
// 인스턴스 생성 없이 객체 내에 프로퍼티에 접근을 가능하게 하는 것
// 프로퍼티 타입 자체와 연결하는 것
struct SomeStructure {
static var storedTypeProperty = "Some value."
static var computedTypeProperty: Int {
return 1
}
}
SomeStructure.computedTypeProperty
SomeStructure.storedTypeProperty = "Hello"
// 아래 코드를 실행해보면 Hello로 바뀐 것을 확인할 수 있다.
SomeStructure.storedTypeProperty
'iOS > Swift' 카테고리의 다른 글
Swift stride(from:to:by:) (1) | 2023.09.23 |
---|---|
Swift replacingOccurrences(of:with:) (0) | 2023.09.17 |
옵셔널 (0) | 2023.06.17 |
함수 (0) | 2023.06.09 |
컬렉션 타입 (5) | 2023.06.09 |