Swift 3 模棱两可的 Class 名字

Swift 3 Ambiguous Class name

我正在将我的代码转换为 swift 3。我有一个 Objective C class "Dimension",它在 [=20] 中运行良好=] 2.3。现在我收到以下错误。

'Dimension' is ambiguous for type lookup in this context

我该如何解决这个问题。

实际上 Swift 3.0 已经从大多数 NS classes 中删除了 'NS'。因此,iOS Foundation 框架在 Swift 3.0 中有 NSDimension class and it's renamed to Dimension。所以这可能是上述错误的原因。您可能需要考虑重命名维度 class(例如:CustomDimension)。

注意:NSDimension class 仅适用于 iOS10+。

正如 @Natarajan 所述,您的 class 名称现在与 OS 的另一个 class 冲突。

如果您不想重命名您的 class,您可以识别您的 class,将您的项目名称作为 class 名称的前缀。

所以每次引用Dimension

let dimension: Dimension = ...

如下所示更改您的代码

let dimension:YourProjectName.Dimension = ...