Swift - 关于导入包与类

Posted

技术标签:

【中文标题】Swift - 关于导入包与类【英文标题】:Swift - About importing packages vs classes 【发布时间】:2016-11-22 19:53:09 【问题描述】:

我需要在我的这个类中使用 MKMapViewDelegate,所以我想知道导入是否是一个好习惯

import MapKit.MKMapView

改为

import MapKit

导入整个包会影响应用性能还是在性能方面我应该考虑什么?

【问题讨论】:

【参考方案1】:

import MapKit.MKMapView 没有实际区别。它仍然导入所有MapKit(例如,尝试创建一个MKShape() 或任何其他MapKit 类)。 Swift 不支持以这种方式导入单个类。我不知道为什么它甚至允许使用语法(可能值得为此打开一个错误,因为它令人困惑)。

在少数情况下实际上有子模块,然后你必须直接导入子模块(导入伞并不总是足够好)。例如,要从 SceneKit 获取一些类别方法,您必须明确地 import SceneKit.ModelIO(但我认为这也不是真正的预期行为)。

但无论如何,今天没有充分的理由限制您的进口。最终,希望 Swift 能够获得更好的导入功能,让我们更好地控制命名空间,但现在,只需导入模块即可。

【讨论】:

【参考方案2】:

不,您的应用性能不会受到影响,这也是一种很好的做法,但是我强烈建议您只导入 Mapkit,这样您就可以在该导入中使用任何东西,而不是从同一个包中导入多个东西。

【讨论】:

以上是关于Swift - 关于导入包与类的主要内容,如果未能解决你的问题,请参考以下文章

包与导入语句剖析

导入包与模块

导入包与模块

python:包与异常处理

Java笔记:包与接口

Apache Hadoop压缩包与Eclipse结合,导入jar包归整总结