在这有很多名称冲突与现有代码库时拉C#,还有别名进口,所以你并不需要完全弄清楚每一次使用的命名空间的方式.例如:
using MyCompany.MyLibrary.Model as MMM
Run Code Online (Sandbox Code Playgroud)
那么你可以做到
MMM.MyObject
Run Code Online (Sandbox Code Playgroud)
代替
MyCompany.MyLibrary.Model.MyObject
Run Code Online (Sandbox Code Playgroud)
随着最近对swift 3.0的更新,我发现我的一些模型对象现在与Foundation类型发生冲突,并且我被迫NS在类名中添加了前缀Foundation.classname.如果我可以输入别名导入我的模型库就好了,就像上面给出的c#示例一样.这在swift 3.0中是否可行?如果没有,是否有另一种策略可以避免名称冲突导致必须在每种类型前面编写框架名称?我正在考虑像我们在obj-c中那样回到我的班级名称前缀,但是在我这样做之前我正试图探索我的选择.
art*_*stv 14
通常
您可以导入特定实体以及整个模块:
import struct SomeModule.SomeStruct
import class SomeModule.SomeClass
import func SomeModule.someFunc
Run Code Online (Sandbox Code Playgroud)
请参阅"导入的"实体类型的完整列表在import-kind斯威夫特语法规则.
然后你可以创建一个typealias:
typealias SMSomeStruct = SomeModule.SomeStruct
Run Code Online (Sandbox Code Playgroud)
而且,从Swift 3开始,没有import声明与别名相结合.
考虑与Foundation实体的冲突
说,你有一堂课SomeModule.NumberFormatter.
只需typealias在单独的Swift文件(在导入项目中)创建两个es 就足以防止冲突:
import Foundation
import SomeModule
typealias NumberFormatter = Foundation.NumberFormatter
typealias SMNumberFormatter = SomeModule.NumberFormatter
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2248 次 |
| 最近记录: |