String(describing:)로 감싸는 이유는 주로 Optional 타입의 값을 안전하게 출력하려고 할 때 사용됩니다.
만약 model.title이 Optional<String> 타입이라면, 직접 "\(model.title)"으로 문자열 보간을 시도할 경우 Optional("value")와 같이 출력될 수 있습니다. 반면, String(describing: model.title)를 사용하면 값이 있을 경우 그 값을, 없을 경우 "nil"을 출력하게 됩니다.
차이점:
- "\(model.title)": model.title이 nil일 경우 "Optional(nil)"이라는 문자열이 출력됩니다.
- "String(describing: model.title)": model.title이 nil일 경우 "nil"이 출력됩니다.
따라서, model.title이 Optional 타입일 때는 String(describing:)을 사용하는 것이 예상치 못한 Optional(...) 출력 형식을 피하는 방법입니다.
var modelTitle: String? = "Example"
// String(describing:) 사용
let title1 = "\(String(describing: modelTitle)) + 방문" // "Example + 방문"
// 그냥 사용
let title2 = "\(modelTitle) + 방문" // "Optional(\"Example\") + 방문"
'iOS > Swift' 카테고리의 다른 글
날짜와 시간을 특정형식의 문자열로 반환하는 코드 (0) | 2024.10.09 |
---|---|
compactMap - 새로운 배열 생성 (1) | 2024.09.21 |
공공 API를 통해 데이터를 가져오는 중에 발생한 오류 해결 (1) | 2024.09.21 |
위치정보를 받아오는 방법 (0) | 2024.09.18 |
heightAnchor랑 bottomAnchor는 뭐가 다를까? (0) | 2024.09.06 |