我读亚光的iOS pragraming书,当我读到这里:在我们的Swift文件中,我应该在哪里导入swift模块?
斯威夫特本身就是一个模块中定义 - 斯威夫特模块。你的代码总是隐式地导入Swift模块。你可以通过使用import Swift开始一个文件来明确这一点;没有必要这样做,但它也没有害处。
这个事实很重要,因为它解决了一个重大的谜题:像print这样的东西来自哪里,为什么可以在任何消息之外将它们用于任何对象? print实际上是一个在Swift模块顶层声明的函数,你的代码可以看到Swift模块的顶层声明,因为它导入了Swift。就您的代码而言,打印功能因此变成了与其他任何打印功能一样的普通顶层功能;它对您的代码是全球性的,您的代码可以在不指定其名称空间的情况下对其进行说明。你可以指定它的命名空间 - 说Swift.print(“hello”)之类的东西是完全合法的 - 但你可能永远不会,因为没有名称冲突需要解决。
比如,在我的测试ViewController
:
import UIKit
//import Swift // here we can import Swift. it is okay
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
Swift.print("hello, matt") // where we import the Swift ?
}
}
我们可以用print
或Swift.print
,我只想问,怎么苹果隐含进口斯威夫特模块?并且明显,UIKit
,我们必须导入,如果可以隐式导入Swift
模块,为什么有苹果不隐式导入UIKit
?
我的困惑是如何隐式导入Swift
模块?
您的引用正确地解释了您似乎在询问的内容 – Alexander
@Alexander,我更新了问题,之前是我缺乏清晰度。 – aircraft