iOS

[iOS] iOS 개발자를 위한 토막 상식 3

Devleoper_yh 2025. 4. 16. 23:12
반응형

iOS 개발자를 위한 토막 상식 3

1️⃣ @discardableResult📤

정의: 함수의 반환값을 사용하지 않아도 컴파일러 경고가 발생하지 않도록 해주는 속성.

@discardableResult
func add(_ a: Int, _ b: Int) -> Int {
    return a + b
}

 

활용 팁: 체이닝 함수나 테스트용 함수에 유용함, 결과 무시할 수 있다


2️⃣ .onAppear() .task()차이 🍎

항목.onAppear().task()

실행 시점 뷰가 화면에 나타날 때마다 호출됨 최초 한 번만 실행
비동기 지원 ❌ (직접 async 처리 필요) async 클로저 사용 가능

 

실전 팁: SwiftUI에서 API 호출은 .task로, 상태 초기화는 .onAppear로 분리


3️⃣ UserDefaults 저장 가능한 타입들 💾

기본 지원 타입:

String, Int, Double, Float, Bool, URL, Data, Array, Dictionary

Codable 객체는 JSONEncoderData로 변환 후 저장 필요

4️⃣ 앱 실행 중 설정 변경 감지 (e.g. 다크모드 전환) 🌗

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    super.traitCollectionDidChange(previousTraitCollection)

    if traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) {
        // 다크/라이트 모드 전환됨
    }
}

 

활용처: 앱 내 색상 테마나 이미지 리로드 등 UI 대응


5️⃣ @Environment(\.dismiss) 사용법 🧭

SwiftUI에서 뷰를 프로그래밍적으로 닫을 때 사용한다.

@Environment(\.dismiss) var dismiss

Button("닫기") {
    dismiss()
}

 

: sheet, navigationDestination, fullScreenCover 뷰에서 손쉽게 닫을 수 있다

반응형