iOS 15에서 AttributedString이 추가되면서 일부 SDK 기능을 쓸 때 NSAttributedString 대신에 AttributedString을 사용해야할 때가 있는데, 이게 또 바로바로 호환이 되질 않는다. 아래와 같이 별도의 생성자를 통해 만들어줘야 한다.

let nsAttributedString = NSAttributedString(...)

// UIKit 특성을 뽑아올 때
let attributedString = try AttributedString(nsAttributedString, including: \.uiKit)

// SwiftUI 특성을 뽑아올 때
let attributedString = try AttributedString(nsAttributedString, including: \.swiftUI)

// AppKit 특성을 뽑아올 때
let attributedString = try AttributedString(nsAttributedString, including: \.appKit)

// Foundation 특성을 뽑아올 때
let attributedString = try AttributedString(nsAttributedString, including: \.foundation)

NSAttributedString의 모든 속성을 바로 가져올 수는 없고, 위와 같이 특정 스코프를 지정하면 그 스코프에 맞는 속성을 뽑아오는 개념이다. 솔직히 불편한데…걍 처음부터 AttributedString으로 만들고 NSAttributedString으로 변환하는게 나을듯…

참고 링크