2017-09-18 43 views
0

假设我正在写一个swift模块,并且想要命名一个已经存在的名称。如果名称来自另一个模块,则很容易。我可以只使用模块名作为一个命名空间:有没有什么办法可以在Swift中引用当前模块?

import Foundation 

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

我的问题是,有没有办法做类型相同的同一模块中?例如,我希望能够做这样的事情:

class Notification { ... } 

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

哪里Module.Notification是上述声明的类型的引用。这样的事情可能吗?

+0

当你尝试时发生了什么?你写的是它是如何工作的。 –

+0

如果我尝试在操场上运行第二块代码,我会得到:'使用未声明的类型:模块' – sak

+1

啊。您需要使用模块的实际名称。如果您在Xcode中工作,那么默认为您的目标名称。 –

回答

1

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

class Notification { ... } 

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

如果你在Xcode中工作,这个默认为您的目标名称。在“打包”下有一个生成设置“产品模块名称”,可让您更改此设置。

如果您使用的是Swift编译系统,那么当然在您的清单文件中通过PackageDescription指定。

相关问题