2017-10-27 14 views
2

私はしばらく使用していたライブラリのSwiftコードに問題があります。 何らかのバージョンの競合に関連しているようですが、わかりません。私はいくつかに気づいNSFontAttributeNameとNSAttributedStringKey.font

Type 'NSAttributedStringKey' (aka 'NSString') has no member 'font' 
    Did you mean 'zone'? Fix(button) 

enter image description here

別のプロジェクトでこのコードを使用する:私は、コンパイラから取得したエラーメッセージここで

let attribMsg = NSAttributedString(string: msg, 
           attributes: [NSAttributedStringKey.font:UIFont.systemFont(ofSize: 23.0)]) 

されています。ここでは

コードです私はエラーメッセージを受け取っていないし、問題なくコンパイルすることができます。問題と

let attribMsg = NSAttributedString(string: msg, 
           attributes: [NSFontAttributeName:UIFont.systemFont(ofSize: 23.0)]) 

プロジェクト他の人が(以前作業)しながら、働くこの他のメッセージが表示されます:

'NSFontAttributeName' has been renamed to 'NSAttributedStringKey.font' 

はまた、私は以下のことで上記のコードを交換する場合に気づい

enter image description here

つまり、いくつかのプロジェクトはあるタイプのコードで動作し、他のタイプのプロジェクトでは他のタイプで動作します。

もちろん、あるプロジェクトから別のプロジェクトに切り替えるたびにコードを変更する必要はありません。

プロジェクトのデプロイメントターゲットを変更した実験では、大きな違いはありません。 これは私の質問になります:この問題を処理する方法は何ですか?

+0

プロジェクトは異なるバージョンのSwiftを使用していますか? (スイフト3とスウィフト4) – nathan

+0

スウィフト4では、キーの名前がNSAttributedStringKey.font'に変更されました。スウィフト3が文字列キーを使用する場合は、ビルド設定 – Tj3n

+1

で即時バージョンを確認してください。あなたは正しい質問をしました。それは3.2から4.0に変更されました。できます。それがコメントの代わりに答えだったら、私はそれを受け入れるだろう!ありがとう。 – Michel

答えて

10

プロジェクトはおそらく異なるバージョンのSwiftです。

スウィフト4では、NSFontAttributeNameNSAttributedStringKey.fontに置き換えられました。

関連する問題