swift – 是否可以别名导入?

在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中那样回到我的班级名称前缀,但是在我这样做之前我正试图探索我的选择.

通常

您可以导入特定实体以及整个模块:

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

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...