100 Days of SwiftUI - Day 11
Day 11. Struct Part 2
접근 제어 (access control)
외부로부터 구조체 내의 프로퍼티를 보호하고 싶을 때가 있음.
특정 메소드가 순서대로 호출되어야 하여 외부에서 접근이 불가능하도록 할 때. 프로퍼티 접근 전에 실행할 로직이 있을 때.
private
: 해당하는 구조체 내에서만 접근 가능fileprivate
: 해당 구조체 및 같은 파일 내에서만 접근 가능-
public
: 언제 어디서나 접근 가능 private(set)
: 해당 프로퍼티는 자유롭게 읽을 수 있으나 수정은 구조체 내의 메소드에서만 가능하다.
정적 프로퍼티와 정적 메소드
앱 전체에서 사용되는 공통 기능이나 데이터를 저장할 때 사용한다.
static
키워드를 사용하여 정적 프로퍼티와 정적 메소드를 정의한다.
struct School {
static var studentCount = 0
static func add(student: String) {
studentCount += 1
}
}
static
메소드는 mutating
키워드를 사용할 수 없다.
self
, Self
의 차이점