// // SymbolCompat.swift // Haru_Danim // // 사용자 지정 SF 심볼의 안전 렌더 (1.4 iOS 18 하위 지원). // 아이콘 카탈로그에는 상위 OS 전용 신형 심볼(예: SF 7의 broom.fill)이 들어 있어, // 26 기기에서 고른 심볼이 iCloud 동기화로 iOS 18 기기(또는 구형 watchOS)에 오면 // Image(systemName:)이 아무것도 그리지 않는다. 사용자 데이터(행동·목표)에서 온 // 심볼 이름은 반드시 이 경유지로 렌더할 것 — 코드 리터럴 심볼(전부 구형)은 비대상. // 워치 앱·워치 위젯 타깃에는 같은 헬퍼의 사본이 있다(WatchSymbolCompat — // 폴더 동기화 그룹 멤버십이 갈려 한 파일을 공유할 수 없음). // import SwiftUI import UIKit enum SymbolCompat { /// 이 OS에 없는 심볼 이름을 안전한 폴백으로 바꾼다 static func safe(_ name: String) -> String { UIImage(systemName: name) != nil ? name : "questionmark.circle.fill" } } extension Image { /// 사용자 데이터의 심볼 렌더 전용 — 이 OS에 없는 이름은 물음표로 대치 init(safeSymbol name: String) { self.init(systemName: SymbolCompat.safe(name)) } }