2016-09-20 5 views
0

私は自分のコードをswift 3に変換しています。Objective Cクラス "Dimension"があります。これはswift 2.3でうまくいきました。今私は次のエラーを取得します。Swift 3あいまいです。クラス名

'Dimension' is ambiguous for type lookup in this context 

どうすればこの問題を解決できますか?

答えて

2

@ Natarajan既に説明したように、あなたのクラス名は、OSの別のクラスと競合しています。

クラスの名前を変更したくない場合は、プロジェクトの名前の前にクラスの名前を付けることができます。

だから毎回あなたが

let dimension:YourProjectName.Dimension = ... 
+0

FoundationをインポートするSwiftクラスをインポートするときにこの問題が発生します。どちらも "カテゴリ"を使用します。 ObjCでもプロジェクトプレフィックスを設定できますか? – RyuX51

1

実際、Swift 3.0はNSクラスのほとんどから 'NS'を削除しました。したがって、iOS FoundationフレームワークはNSDimensionクラスであり、Swift 3.0ではDimensionという名前に変更されています。だから、上記のエラーの原因になる可能性があります。 Dimensionクラス(例:CustomDimension)の名前を変更する必要があるかもしれません。

注:NSDimensionクラスはiOS10 +でのみ使用できます。

+0

問題の下に示すようにDimension

let dimension: Dimension = ... 

変更あなたのコードを、私は私の外形寸法クラスに関連付けられたデータをアーカイブしていることが参照されると、私はの名前を変更した場合クラスでは、古いDimensionクラスのデータを展開することができず、クラッシュが発生します。 – reza23

+0

私のプロジェクトでDimensionクラスを探すように強制する必要はありますか? – reza23

関連する問題