私は自分のコードをswift 3に変換しています。Objective Cクラス "Dimension"があります。これはswift 2.3でうまくいきました。今私は次のエラーを取得します。Swift 3あいまいです。クラス名
'Dimension' is ambiguous for type lookup in this context
どうすればこの問題を解決できますか?
私は自分のコードをswift 3に変換しています。Objective Cクラス "Dimension"があります。これはswift 2.3でうまくいきました。今私は次のエラーを取得します。Swift 3あいまいです。クラス名
'Dimension' is ambiguous for type lookup in this context
どうすればこの問題を解決できますか?
@ Natarajan既に説明したように、あなたのクラス名は、OSの別のクラスと競合しています。
クラスの名前を変更したくない場合は、プロジェクトの名前の前にクラスの名前を付けることができます。
だから毎回あなたが
let dimension:YourProjectName.Dimension = ...
実際、Swift 3.0はNSクラスのほとんどから 'NS'を削除しました。したがって、iOS FoundationフレームワークはNSDimensionクラスであり、Swift 3.0ではDimensionという名前に変更されています。だから、上記のエラーの原因になる可能性があります。 Dimensionクラス(例:CustomDimension)の名前を変更する必要があるかもしれません。
注:NSDimensionクラスはiOS10 +でのみ使用できます。
FoundationをインポートするSwiftクラスをインポートするときにこの問題が発生します。どちらも "カテゴリ"を使用します。 ObjCでもプロジェクトプレフィックスを設定できますか? – RyuX51