在c#中引入与现有代码有很多名称冲突的库时,有一种方法可以对导入进行别名,因此您无需为每次使用完全阐明命名空间.例如:
using MyCompany.MyLibrary.Model as MMM
那么你可以做到
MMM.MyObject
代替
MyCompany.MyLibrary.Model.MyObject
随着最近对swift 3.0的更新,我发现我的一些模型对象现在与Foundation类型发生冲突,并且我被迫在类名中使用Foundation.classname为具有NS前缀的东西添加前缀.如果我可以输入别名导入我的模型库就好了,就像上面给出的c#示例一样.这在swift 3.0中是否可行?如果没有,是否有另一种策略可以避免名称冲突导致必须在每种类型前面编写框架名称?我正在考虑像我们在obj-c中那样回到我的班级名称前缀,但是在我这样做之前我正试图探索我的选择.
通常
原文链接:https://www.f2er.com/swift/318610.html您可以导入特定实体以及整个模块:
import struct SomeModule.SomeStruct import class SomeModule.SomeClass import func SomeModule.someFunc
请参阅“可导入”实体类型in the import-kind
rule of Swift grammar的完整列表.
然后你可以创建一个typealias:
typealias SMSomeStruct = SomeModule.SomeStruct
而且,从Swift 3开始,没有与别名相结合的导入声明.
考虑与基金会实体的冲突
比如说,你有一个SomeModule.NumberFormatter类.
只需在单独的Swift文件(在导入项目中)创建两个typealases就可以防止冲突:
import Foundation import SomeModule typealias NumberFormatter = Foundation.NumberFormatter typealias SMNumberFormatter = SomeModule.NumberFormatter