반응형
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 객체는 JSONEncoder로 Data로 변환 후 저장 필요
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 뷰에서 손쉽게 닫을 수 있다
반응형
'iOS' 카테고리의 다른 글
[iOS] iOS 개발자를 위한 토막 상식 5 (0) | 2025.04.22 |
---|---|
[iOS] iOS 개발자를 위한 토막 상식 4 (0) | 2025.04.22 |
[iOS] iOS 개발자를 위한 토막상식 2 (0) | 2025.04.15 |
[iOS] iOS 개발자를 위한 토막상식 1 (0) | 2025.04.14 |