有没有办法在Swift中引用当前模块?

Is there any way to reference the current module in Swift?

假设我正在编写一个 swift 模块,我想用一个已经存在的名称来命名一个类型。如果名称来自另一个模块,那很容易。我可以只使用模块名称作为命名空间:

import Foundation

class MyClass {
    class Notification : Foundation.Notification { ... }
}

我的问题是,有什么方法可以对同一模块中的类型执行相同的操作吗?例如,我希望能够做这样的事情:

class Notification { ... }

class MyClass {
    class Notification : Module.Notification { ... }
}

其中 Module.Notification 是对上面声明的类型的引用。这样的事情可能吗?

您需要使用模块的实际名称:

class Notification { ... }

class MyClass {
    class Notification : MyAmazingTwitterApp.Notification { ... }
}

如果您在 Xcode 工作,这将默认为您的目标名称。在 "Packaging" 下有一个构建设置 "Product Module Name",可让您更改它。

如果您使用的是 Swift 构建系统,这当然是通过 PackageDescription.

在您的清单文件中指定的