let fontRef = CTFontCreateWithName("ArialMT", config.fontSize, nil);
[kCTFontAttributeName : fontRef];
[kCTFontAttributeName : fontRef]
は私に次のエラーを与える:素早く「文の種類は文脈がなくてもあいまいですか?
"Type of expression is ambiguous without more context"
let fontRef = CTFontCreateWithName("ArialMT", config.fontSize, nil);
[kCTFontAttributeName : fontRef];
[kCTFontAttributeName : fontRef]
は私に次のエラーを与える:素早く「文の種類は文脈がなくてもあいまいですか?
"Type of expression is ambiguous without more context"
あなたの辞書の種類を定義されていませんでした。あなたの定義から、辞書型が何であるかがはっきりしない、これはあいまいさの理由です。タイプのあいまいさがないようにするには、それを何かに割り当てる必要があります。また、kCTFontAttributeName
がHashable
ではないCFString
タイプであるため、結果がキーの辞書にはなりませんので、ルートエラーではありません。as String
として最初に変換する必要があります。 NSAttributedString
の辞書のタイプは[String: AnyObject]
である必要があります。適切な答えはlet attributes: [String: AnyObject] = [kCTFontAttributeName as String : fontRef]
です。
psさらに、;
を行末に入れないでください。これはSwiftにはもう必要ではなく、悪いスタイルとしてカウントされることがよくあります。
'[String:AnyObject]'は '' CFString'が暗黙的に '' String''に変換できないので記述できませんが、アイディア。 'CFString'は' Hashable'ではないので '[CFString:AnyObject]'にすることもできません。彼はおそらく 'let属性:[String:AnyObject] = [kCTFontAttributeNameをString:fontRef]'と言いたいと思うでしょう。 –
あなたは正しいです、あいまいさはエラーの主な理由ではなく、誤ったコンパイラ警告です。 –
@NikitaLeonov年、私はすぐに知っている必要があります ";"、私は自分の携帯電話で編集するので、私はちょうどコードを分離するために使用します。 NSAttributedStringを初期化するために辞書を使用したいので、どのように辞書をコーディングするのですか?ありがとう。 –
そして、そのコード行は正確に何をする予定ですか? – Gruntcakes
@SausageMachine辞書を使用してNSAttributedStringを初期化したい –