2016-05-09 7 views
0
let fontRef = CTFontCreateWithName("ArialMT", config.fontSize, nil); 
[kCTFontAttributeName : fontRef]; 

[kCTFontAttributeName : fontRef]は私に次のエラーを与える:素早く「文の種類は文脈がなくてもあいまいですか?

"Type of expression is ambiguous without more context"

+1

そして、そのコード行は正確に何をする予定ですか? – Gruntcakes

+0

@SausageMachine辞書を使用してNSAttributedStringを初期化したい –

答えて

1

あなたの辞書の種類を定義されていませんでした。あなたの定義から、辞書型が何であるかがはっきりしない、これはあいまいさの理由です。タイプのあいまいさがないようにするには、それを何かに割り当てる必要があります。また、kCTFontAttributeNameHashableではないCFStringタイプであるため、結果がキーの辞書にはなりませんので、ルートエラーではありません。as Stringとして最初に変換する必要があります。 NSAttributedStringの辞書のタイプは[String: AnyObject]である必要があります。適切な答えはlet attributes: [String: AnyObject] = [kCTFontAttributeName as String : fontRef]です。

psさらに、;を行末に入れないでください。これはSwiftにはもう必要ではなく、悪いスタイルとしてカウントされることがよくあります。

+2

'[String:AnyObject]'は '' CFString'が暗黙的に '' String''に変換できないので記述できませんが、アイディア。 'CFString'は' Hashable'ではないので '[CFString:AnyObject]'にすることもできません。彼はおそらく 'let属性:[String:AnyObject] = [kCTFontAttributeNameをString:fontRef]'と言いたいと思うでしょう。 –

+0

あなたは正しいです、あいまいさはエラーの主な理由ではなく、誤ったコンパイラ警告です。 –

+0

@NikitaLeonov年、私はすぐに知っている必要があります ";"、私は自分の携帯電話で編集するので、私はちょうどコードを分離するために使用します。 NSAttributedStringを初期化するために辞書を使用したいので、どのように辞書をコーディングするのですか?ありがとう。 –

関連する問題