加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 是否可以别名导入?

发布时间:2020-12-14 05:38:22 所属栏目:百科 来源:网络整理
导读:在c#中引入与现有代码有很多名称冲突的库时,有一种方法可以对导入进行别名,因此您无需为每次使用完全阐明命名空间.例如: using MyCompany.MyLibrary.Model as MMM 那么你可以做到 MMM.MyObject 代替 MyCompany.MyLibrary.Model.MyObject 随着最近对swift 3.
在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读