Swift 3暧昧类名

问题描述:

我正在将我的代码转换为swift 3.我有一个Objective C类“Dimension”,它在swift 2.3中一直工作正常。现在我得到以下错误。Swift 3暧昧类名

'Dimension' is ambiguous for type lookup in this context 

我该如何解决此问题。

由于@Natarajan已经描述过,您的类名现在与另一个OS类冲突。

如果您不想重命名您的班级,您可以将您的班级名称标识为班级名称的前缀。

所以每次你参考Dimension

let dimension: Dimension = ... 

改变你的代码如下图所示

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

我导入导入Foundation的Swift类时遇到此问题。两者都使用“类别”。我可以在ObjC中配置项目前缀吗? – RyuX51

事实上,Swift 3.0已经从大多数NS类中删除了'NS'。所以,iOS Foundation框架有NSDimension类,它在Swift 3.0中更名为Dimension。所以这可能是上述错误的原因。您可能需要考虑重命名您的Dimension类(例如:CustomDimension)。

注意:NSDimension类只在iOS10 +中可用。

+0

的问题是,我有存档我的Dimension类相关的数据,如果我改变的名称它不能解压缩旧的Dimension类数据,导致崩溃。 – reza23

+0

有没有办法强制它在我的项目中查找Dimension类。 – reza23