Class함수와 Static함수의 차이
- Swift에는
static
fun, class
func, instance
fun 세가지의 함수 존재
- 앞에 키워드 없이
평소에 사용하던 함수가 instance 함수
- static, class함수를
타입 메서드
라고 불림 → 인스턴스 생성하지 않아도 즉시 접근 가능
- 둘의 차이는 class함수만
오버라이딩 가능
- 즉, 오버라이딩이 불가한 static함수는
enum, struct에서 정의 불가능
- 결국, class 함수에 final을 붙여서 오버라이딩을 막을 시
final class method = static method
(동일)
- 프로퍼티도 동일(타입 프로퍼티)
- 코드 예제
사용 시점
- static 프로퍼티
- 공통으로 관리하는 자원에 사용(앱에서 공통으로 사용하는 폰트, 색상 등)
- 재사용이 자주되며 생성시마다 비용이 많이드는 객체(date formatter 등)
- static 메서드
- 코드 예제