kCTUnderlineStyleAttributeName のドキュメントは、次を中継します。
kCTUnderlineStyleAttributeName この属性が適用されるテキストに対して、レンダリング時に適用される下線のスタイル。値は CFNumber オブジェクトでなければなりません。デフォルトは kCTUnderlineStyleNone です。下線を描画するには、kCTUnderlineStyleNone 以外の値を設定します。さらに、CTUnderlineStyleModifiers にリストされている定数を使用して、下線の外観を変更できます。下線の色は、テキストの前景色によって決まります。
setAttributes 関数のシグネチャは次のとおりです。
func setAttributes(attrs: [NSObject : AnyObject]?, range: NSRange)
私が抱えている問題は、ドキュメントがCTUnderlineStyle.Single をkCTUnderlineStyleAttributeNameキーの値として使用できる (Swift では使用する必要がある)という事実をほのめかしているように見えることです。ただし、前者は構造体であるため、辞書の値の型で必要な AnyObject プロトコルに準拠していません。
何か案は?