导入框架与模块

Posted

技术标签:

【中文标题】导入框架与模块【英文标题】:Import framework vs module 【发布时间】:2018-07-16 11:51:08 【问题描述】:

想知道:如果我只使用CLLocationManager 是否有任何重要的胜利/专业:

import CoreLocation.CLLocationManager

结束:

import CoreLocation

?

【问题讨论】:

【参考方案1】:

据我所知,有了这个blog post,它对性能没有影响,Swift 编译器在编译期间避免了未使用的符号。它只会更改您可以在文件中使用的内容,并避免使用 CoreLocation 中不需要的对象。

【讨论】:

【参考方案2】:

正如thoughtbot 博客所述,除了有助于删除您正在处理的特定文件中可能不需要的过多符号之外,不会有任何性能提升。

就性能和二进制大小而言,任何未使用的符号都已由 Swift 编译器从最终二进制文件中优化出来。如果在编译时没有引用它,那么它就会被删除,这意味着导入一个框架但不使用它的特定部分不应该有任何负面影响。

只有当您有两个模块定义具有相同名称的特定类型时,您可能需要指定导入 Module.SubModule。

注意:尚未在苹果开发者网站上找到任何相关文档。 Apple 有关这方面的文档将有助于了解更多信息。

【讨论】:

以上是关于导入框架与模块的主要内容,如果未能解决你的问题,请参考以下文章

selenium + python自动化测试unittest框架学习python导入模块及包知识点

客快物流大数据项目(五十):项目框架初始化

Swift 应用程序:导入静态库的框架时“缺少必需的模块”

导入模块的方法(常规导入与动态导入)

模块与包的导入

python模块导入的方法与区别